0

以下の 3 つのモデルがあり、2 つの外部キーを作成時の投稿に関連付けたいと考えています (user_id (User モデルから) と review_id (Review モデルから)) を Goal モデルに関連付けます。「current_user」を使用して user_id を目標に関連付けることができます。以下のリンクに示されているソリューションを使用して作成しますが、review_id についてもこれを行う方法がわかりません。

ありがとう。

現在のユーザーを投稿に関連付ける方法を考案しますか?

私のモデル:

class User < ActiveRecord::Base       
  has_many :reviews
  has_many :periods, :through => :reviews
  has_many :goals
end

class Review < ActiveRecord::Base       
  belongs_to :user
  belongs_to :period
  has_many :goals
end

class Goal < ActiveRecord::Base       
  belongs_to :user
  belongs_to :review
end

私の goal_controller.rb

def create
  @goal = current_user.goals.build(params[:goal])

  respond_to do |format|
    if @goal.save
      format.html { redirect_to @goal, notice: 'Goal was successfully created.' }
      format.json { render json: @goal, status: :created, location: @goal }
    else
      format.html { render action: "new" }
      format.json { render json: @goal.errors, status: :unprocessable_entity }
    end
  end
end

乾杯、アズレン

4

1 に答える 1

0

私は目標が何であるかを理解していませんが。私が通常使用する一般的な方法の 1 つは、よく知っているものや良い例を簡単に見つけることができるものとの関係をモデル化することです。たとえば、ユースケースをユーザーの質問回答モデルと考えてください。ユースケースと同じように、ユーザーには多くの質問と多くの回答があります。質問には多くの回答があり、ユーザーに属し、回答はユーザーと質問に属します。

それで物事は簡単になりますよね?stackoverflow がこれをどのように実装するかを見てみましょう。コメント ボックスの html コードを確認できます。フォーム アクションは (/questions/10186415/answer/submit) のようなものです。ここで 10186415 は質問 ID で、サーバー側に渡されるため、回答が作成されると、この質問 ID を使用して関連付けることができます。

あなたのケースに戻ると、ゴール フォームは、それがどのレビューに対するものかを認識している必要があります。レビュー ID は非表示フィールドであるか、送信 URL の一部である可能性があります。

于 2012-04-17T07:14:21.910 に答える