Has_Many简单表单嵌套对象表单表单未发布用户值一个模型具有身份验证

时间:2013-10-23 18:24:55

标签: ruby-on-rails devise simple-form has-many

我很确定我的问题比我在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"}

1 个答案:

答案 0 :(得分:1)

您创建的工作不是公司,因此您需要使用params[:job]

将创建操作中的行更改为:

@company = current_company.jobs.new(params[:job])

如果您使用@job变量名称会更好,因为它更具描述性。