単純にやり方を教えられない複雑なテーマですが、私が少しお手伝いします。Zippie の提案は良いものです。チュートリアルを実行して、さまざまな種類の関係について学習する必要があります。
データベースには、次のものが必要です。
create_table :gallery do |t|
t.user_id
end
create_table :comments do |t|
t.gallery_id
t.user_id
end
これらは、Rails がモデルを照合するために使用する外部インデックスです (外部インデックスは、belongs_to 関係を指定するモデルに入ります)。
ルートに関しては、単一の解決策はありませんが、/users/comments や /galleries/comments などを実行できるように、ルートをネストすることができます。
resource :users do
resource :comments
end
resource :galleries do
resource :comments
end
単純に別々に持つこともできます:
resources :users, :galleries, :comments
コントローラーで新しいオブジェクトを作成するときは、それが属するオブジェクトから行う必要があります。
@comment = current_user.comments.build(params[:comment])
これにより、たとえば、コメントの user_id が現在のユーザーに設定されます。
ビューでは、大きな違いはありません。次のようにコントローラーで @comments 変数を取得するだけです。
@comments = @gallery.comments
あなたの見解でそれを使用してください。
フォーム ヘルパーを定義して新しいコメントを作成する場合は、直感的ではない可能性があります。次に例を示します。
<%= form_for([@gallery, @comment]) do |f| %>
...
<% end %>
始めるのに役立つことを願っています。