2017-06-02 24 views
0
Order has_many jobs 
Job belongs to order 

そして、私は@job.orderの属性を編集する:入力フォームで関連モデルを編集しますか?

<% order = @job.order %> 
<%= simple_form_for [@job, order], 
    url: job_path(@job), 
    method: :put, 
    remote: true do |f| %> 
    <%= f.input :order_status, input_html: {class: 'form-control'} %> 
    (...) 
<% end %> 

単純な形式で入力を使用することによってそれを行うにはどのような方法? jobs_controller.rb

params.require(:job).permit(:something, :something_else, :order_attributes => [:status])

+0

http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods .html –

答えて

0

あなたは優れたコクーンの宝石を使用することができますhttps://github.com/nathanvda/cocoonを使用して、ネストされたリレーションシップを管理します。

class Job < ActiveRecord::Base 
    has_many :orders 
    accepts_nested_attributes_for :orders, reject_if: :all_blank, allow_destroy: true 
end 

class Order < ActiveRecord::Base 
    belongs_to :job 
end 

注意してください。

_form.html.erb *

<%= form_for @job do |f| %> 
    <%= f.label :job_name %> 
    <%= f.text_field :name %> 
    <div id='order'> 
    <%= f.fields_for :orders do |order| %> 
     <%= render 'order_fields', f: order %> 
    <% end %> 
    <div class='links'> 
     <%= link_to_add_association 'add order', f, :orders %> 
    </div> 
    <%= f.submit %> 
<% end %> 

_order_fields.html.erb部分

<div class='nested-fields'> 
    <%= f.label :order_name %> 
    <%= f.text_field :order_name %> 
</div> 
<%= link_to_remove_association "remove order", f %> 
+0

はフィールドを全く示していません。 – Giovani

+0

は、関係を正しく設定していないことを示します。 –

0

form.html.erb

simple_form_for @job do |f| 
    f.simple_fields_for @job.order do |order_form| 
    order_form.input :status 
    end  
end 

でjob.rb

accepts_nested_attributes_for :order

関連する問題