私のアプリケーションでは、現在、ユーザーのページにあるユーザーに関連するプロジェクトをリストしています。リストされている各プロジェクトについて、各プロジェクトに対して作成されたコメントをレンダリングしたいと考えています。各プロジェクトへのコメントをフォーム経由でデータベースに投稿できますが、コメントに関連するコメントを表示できません。何もレンダリングされません。私は users_controller で遊んでいて、そこにあると思っていましたが成功しませんでした。どうすれば修正できますか?
ユーザー、プロジェクト、およびコメントのモデルとコントローラーを作成しました。コメントはプロジェクトに属し、プロジェクトはユーザーに属します。
schema.rb
create_table "comments", :force => true do |t|
t.integer "user_id"
t.integer "project_id"
t.text "content"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
user.rb
has_many :projects
has_many :comments
project.rb
has_many :comments
belongs_to :user
コメント.rb
belongs_to :project
ルート.rb
resources :users
resources :projects do
resources :comments
end
resources: comments
ビュー/ユーザー/_projects.html.erb
<%= render @projects %>
users_controller.rb
def comments
@user = User.find(params[:id])
@projects = @user.projects.newest.page(params[:comments_page]).per_page(10)
@project = Project.new
@comments = Project.find(params[:id]).comments.newest.page(params[:comments_page]).per_page(2)
end
ビュー/プロジェクト/_project.html.erb
<%= project.content %>
<%= render 'comments/form', project:project %>
<%= render @comments %>
<%= will_paginate @comments, :param_name => 'comments_page' %>
ビュー/コメント/_comment.html.erb
<%= comment.content %>