0

私のアプリケーションでは、現在、ユーザーのページにあるユーザーに関連するプロジェクトをリストしています。リストされている各プロジェクトについて、各プロジェクトに対して作成されたコメントをレンダリングしたいと考えています。各プロジェクトへのコメントをフォーム経由でデータベースに投稿できますが、コメントに関連するコメントを表示できません。何もレンダリングされません。私は 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 %>
4

1 に答える 1

0

project.html.erb ファイルで、次のようなループを使用してみてください。

<% project.comments.each do |c| %>
  #do something
<% end %>
于 2013-05-15T04:32:57.157 に答える