0

次のデータ構造のフォームを作成する適切な方法を探しています。

class Profile < ActiveRecord::Base
  attr_accessible :name
  has_many :weights
  accepts_nested_attributes_for :weights
end

class Tag < ActiveRecord::Base
  attr_accessible :name
  has_many :weights
end

class Weight < ActiveRecord::Base
  attr_accessible :weight, :profile_id, :tag_id
  belongs_to :profile
  belongs_to :tag
end

プロファイルの編集フォームで、すべての重みを取得し、ユーザーがそれらを更新できるようにします。私は次のようなネストされた属性でこれを行うことができました:

<%= form_for [:admin, @profile] do |f| %>
  <%= f.error_messages %>
  <p>
    <%= f.label :name %>
    <%= f.text_field :name %>
  </p>
  <div class='weights'>
    <%= f.fields_for :weights do |ff| %>
      <%= ff.label :weight %>
      <%= ff.text_field :weight %>
    <% end %> 
  </div>

  <%= f.submit %> 
<% end %>

重要なのは、実際には、各ウェイト行に関連付けられたtag_idのタイトルも取得したいということです(したがって、どのウェイトのタグが変更されているかがわかります)。この情報を取り込む方法がわかりません。このフォームを書き出す前に、何らかの結合を行う必要がありますか?これはばかげたアプローチですか?

みんな、ありがとう

-ニール

4

1 に答える 1

0

ff.objectあなたは通り抜けて体重を取得し、通り抜けることができるはずですff.object.tag.title。これを試しましたか?

于 2013-01-22T20:14:09.157 に答える