我很确定我的问题比我在stackoverflow上看到的has_many嵌套表单问题复杂一点
我有两个模型,一个是company.rb,另一个是job.rb
company.rb
has_many :jobs
accepts_nested_attributes_for :jobs, allow_destroy: true
attr_accessible :jobs_attributes
job.rb有这个
belongs_to :company
在我的公司控制器中我有这个
def new
@company = current_company.jobs.new
end
def create
#the actual create process where the params from the forms got sent here
@company = current_company.jobs.new(params[:company])
end
我已根据身份验证设计公司,因此我想为当前登录的公司创建工作
这是我的表格
<%= simple_form_for @company do |f| %>
<%= f.input :title %>
<%= f.input :description %>
<%= f.button :submit %>
<% end %>
每个作业条目都已创建,但值不会传递给它?我记录了空记录,记录中也没有company_id。
我一直在研究这两天可以帮助我吗?我在表单上尝试了fields_for,但没有发布任何内容?
这是我的日志
Processing by JobsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"9P+tEDamlP9+jEHU31gL93hc4GyhXTZoe3zoMopKHa0=", "job"=>{"title"=>"software", "description"=>"make software"}, "commit"=>"Create Job"}
答案 0 :(得分:1)
您创建的工作不是公司,因此您需要使用params[:job]
。
将创建操作中的行更改为:
@company = current_company.jobs.new(params[:job])
如果您使用@job变量名称会更好,因为它更具描述性。