【发布时间】:2015-12-24 19:37:05
【问题描述】:
我正在挑战自己建立一个小市场,您可以在其中发布一个类别内的“请求”。为此,我同时拥有请求模型和类别模型。如何在这些模型之间添加关系,以便 Category 知道它属于请求,反之亦然?我已经这样做了:
category.rb
has_and_belongs_to_many :requests
request.rb
has_one :category
现在在我的部分表单中,我有以下代码:
<%= f.select :category, Category.all, :prompt => "Kategorie", class: "form-control" %>
奇怪的是:category不存在,因为列应该是:name。在我的seeds.rb 中,我插入了以下内容,在rake db:seed 之后运行良好
Category.create(name: 'PHP')
Category.create(name: 'Ruby')
Category.create(name: 'HTML')
Category.create(name: 'ASP')
Category.create(name: 'C#')
Category.create(name: 'C++')
但上面带有:category 的代码显示了这一点:
种子文件中有所有 6 个类别,但不是类别的实际名称(如“PHP”)。如果我在这段代码中使用:name 而不是:category:
<%= f.select :category, Category.all, :prompt => "Kategorie", class: "form-control" %>
我得到了一个
undefined method `name' for #<Request:0x007ff504266b40>
我的分类表:
Category(id: integer, name: string, description: text, created_at: datetime, updated_at: datetime)
保存后如何调用特定请求的类别? @Category.request?
我真的很困惑(抱歉,我是从 8 月下旬才开始学习 Rails)。
提前致谢!
【问题讨论】:
标签: ruby-on-rails models