0

デバイス認証がインストールされた会社のモデルがあります。has_many :jobs です。

私の目標は、既存の会社としてサインインし、モンゴイドデータベースに適切にリンクされているときに、ジョブレコードを正常に作成することです。

1 つのフォームで複数のモデルを更新したい。

設定方法を知っている

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

new() の代わりに build() が必要なだけではありませんか?

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 に答える