0

データを更新するには、どのようなクエリを受け入れる必要があるのでしょうか。私のモデルは、クライアント、関心、およびマネージャーで構成されています

Clients his has follow
id
name
email
password

Interest
id
description

manager
customer_id
interest_id
created_at

マネージャーの目標は、関心のある古いデータを上書きするのではなく、新しい関心を追加して参照し続けることです。

The relationship his has follow
class Client < ActiveRecord::Base
  has_many :music_interest_managers
  has_many :music_interests, through => :music_interest_managers
end
class MusicInterest < ActiveRecord::Base
  has_many :music_interest_managers
  has_many :clients, through => :music_interest_managers
end
class MusicInterestManager < ActiveRecord::Base
  belongs_to :music_interests
  belongs_to :client
end

顧客コントローラーからのデータを更新するために、これをどのように行うかわかりません。これが私が考えていることです。

@client = Client.find(params[:id])
@manager = @client.manager.build(params[:manager])
@interest = @interest.manager.build(params[:interest])

これは意味がありますか?または私は完全に間違っていますか?

アップデート:

def update
    @client = Client.find(params[:id])
    @interest = @client.music_interests.build(params[:interest])

    if @client.update_attributes(params[:client])
        flash[:success] = "Profile updated"
        #sign_in @client
        redirect_to @client
    else
        render 'edit'
    end
end

または、関心のあるモデルビューをレンダリングしてから、変更を適用する必要がありますか?

4

1 に答える 1

0
@client = Client.find(params[:id])
@interest = @client.music_interests.build(params[:interest])

動作するはずです-コンソールで試してみてください!

于 2012-07-26T17:25:26.167 に答える