0

私には2つのモデルがArtistありUser、それらは3番目のモデルを介して接続されていArtistMembershipます。

編集/新しいアーティストフォームから、そのアーティストの既存のArtistMembership関係にあるユーザーの役割を編集し、ArtistMembershipを削除し、Userと:roleを含む新しいAtistMembership関係を追加できるようにしたいと思います。

これが私のアーティストモデルです:

class Artist < ActiveRecord::Base
has_many :artist_memberships, foreign_key: "artist_id", dependent: :destroy

attr_accessible :bio, :created_at, :email, :location, :name, :updated_at, :website, :pic
accepts_nested_attributes_for :artist_memberships, :allow_destroy => :true
...
end

これが私のユーザーモデルです:

class User < ActiveRecord::Base
...
has_many :artist_memberships, foreign_key: "user_id"
...
end

これが私のArtistMembershipモデルです。

class ArtistMembership < ActiveRecord::Base
    belongs_to :artist, class_name: "Artist"
    belongs_to :user, class_name: "User"

  attr_accessible :artist_id, :created_at, :role, :user_id
end

_form.hml.erbもある場合、開始するアーティストを編集するために:

<%= form_for @artist do |artist_form| %>
  <div class="field">
    <%= artist_form.label :name %>
    <%= artist_form.text_field :name %>
  </div>
..
  <div class="actions">
    <%= artist_form.submit %>
  </div>
<% end %>

前述の機能に関連するArtistMembershipフォームを作成するにはどうすればよいですか?

4

2 に答える 2

1

多分あなたはこの方法を探しています。 http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-fields_for

「1対多」のセクションを参照してください。

しかし、私があなたなら、むしろ「ネストされたリソース」技術を使用したいと思います。 http://guides.rubyonrails.org/routing.html#nested-resources

于 2012-09-26T06:07:58.603 に答える
1

これはあなたに役立つかもしれません、このfield_forを参照してください

accepts_nested_attributes_for(* attr_names)を使用できます

于 2012-09-26T09:16:58.333 に答える