我的User
有Profession
个Occupation
,@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 }) %>
来自bulder。
要调试我已经尝试了以下三种变体,但根本没有呈现代码(表单的其余部分没有问题):
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
我在这里做错了什么?我没有错误,我只是没有为select标签获取任何HTML。
以下是我的模特:
{{1}}
答案 0 :(得分:0)
fields_for:Occupations最不可能呈现任何内容,因为@user.occupations
为空。而且您很可能在代码的第3行中使用Profession
而不是Person
。
要解决此问题,您可以在控制器中执行@user.occupations.build
,这样您的fields_for块就会呈现html。