0
我有一个模型(用户)has_many
另一个模型(职业) - 这应该由一个(或多个)选择菜单表示表单。在Rails 4中构建一个具有多对多关系的嵌套表单
我无法理解为什么选择菜单无法呈现?我是否以错误的方式构建了选择帮手?或者在视图或控制器中出现其他问题?用户的name
属性在表单中显示正常。
的车型:
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
控制器:
def edit
end
def create
@user = User.new(user_params)
if @user.save
redirect_to @user, notice: 'User was successfully created.'
else
render action: 'new'
end
end
private
def set_user
@user = User.find(params[:id])
end
def user_params
params.require(:user).permit(:name, :email, ocuppations_attributes: [:id, :user_id, :profession_id])
end
视图(压缩):
<%= form_for(@user) do |f| %>
<%= f.text_field :name %>
<%= f.fields_for :occupations do |builder| %>
<%= builder.select :profession_id, Profession.all.collect {|x| [x.title, x.id]} %>
<% end %>
<% end %>
它可能是,它应该是一个集合select而不是。但它仍然不显示:( 我应该做一些准备对象在控制器(或其他地方)? –