0

我有安装了设计身份验证的公司模型。它有很多:工作。

我的目标是当我以现有公司的身份登录时成功创建工作记录,并将其正确链接到我的 mongoid 数据库中。

我想要一个表格来更新多个模型。

我知道怎么设置

accepts_nested_attributes_for :jobs, allow_destroy: true

但我无法将该实例从我的控制器传递到嵌套表单?

在我的公司控制器中,我有这个

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.simple_fields_for :jobs do |j| %>
    <%= j.input :title %>
    <%= j.input :description %>
  <% end %>
    <%= f.button :submit %>
<% end %>

如何将当前公司工作对象发送到视图并正确发布?目前在我点击提交时的表单中,我正在创建一个空的作业对象。价值观没有到达那里?

我认为公司模型的设计认证使很多事情复杂化。我在另一次做过,但没有进行身份验证。

如果我将控制器更改为此

def new 

@company = Company.new 

end 

def create
    #the actual create process where the params from the forms got sent here
    @company = Company.new(params[:company])
 end 

如果我以公司身份登录,那么如果我没有登录,我会收到“您已经登录”,我将被重定向到设计注册路径。

4

1 回答 1

0

难道你只需要 build() 而不是 new():

def new 
  @company = current_company
  @company.jobs.build()
end

def create
  #the actual create process where the params from the forms got sent here
  @job = current_company.jobs.build(params[:company][:job_attributes])

  if @job.save
     # redirect somewhere
  else
     render :new
  end
end 
于 2013-10-23T22:04:53.480 回答