1
我有一个User
,它有很多Profession
,Occupation
正在连接这两个。在多对多关系中选择标签不显示
我试图用bulder在@user
中显示一个选择菜单,其中包含可用的职业。
要调试我已经试过以下三个变化,但不包含代码都被渲染(该表格的其余部分没有问题):
<%= f.fields_for :occupations do |builder| %>
<%= builder.collection_select(:profession_id, Profession.all, :id, :title) %>
<%= bulder.select :profession_id, Profession.all.collect {|p| [ p.name, p.id ] }, { include_blank: true })) %>
<% end %>
<%= select("occupation", "profession_id", Profession.all.collect {|p| [ p.title, p.id ] }, { include_blank: true }) %>
我应该怎么做是错在这里干什么?我没有得到任何错误,我只是没有得到任何html的选择标签。
这里是我的模型:
class User < ActiveRecord::Base
has_many :occupations, dependent: :destroy
has_many :professions, through: :occupations
accepts_nested_attributes_for :occupations
end
class Profession < ActiveRecord::Base
has_many :occupations, dependent: :destroy
has_many :users, through: :occupations
end
class Occupation < ActiveRecord::Base
belongs_to :user
belongs_to :profession
end
我做到了这一点,现在*发生了一些事情 - 不知道它是好还是坏。重新加载时,我得到以下错误“未定义的方法'occupations_path'”。我知道这是一个单独的问题,但为什么它似乎呈现一个职业_道路? –
@FellowStranger几乎可以肯定它试图为'fields_for'创建目标路径,并发现没有路由帮助程序可以这样做。使用'rake routes'来弄清楚发生了什么。 'fields_for'目标必须匹配Occupation控制器的'PUT'和'POST'方法。 – Gene
感谢您的输入,尽管我对'fields_for'部分需要单独路由非常困惑 - 并不是使用'fields_for'来指示相关模型嵌套到主窗体对象('@ user') )并继承它的'路由? –