2013-05-15 6 views
0

Для моего приложения в настоящее время я перечисляю свои проекты, связанные с пользователем на странице пользователя. Для каждого перечисленного проекта я хочу сделать комментарии для каждого проекта. Я могу отправлять комментарии к каждому проекту в базу данных через форму, но не могу представить комментарии, связанные с комментариями. Ничего не дает. Я играю с user_controller, думая, что он там без успеха. Как это исправить?Rails - Почему мои комментарии не отображаются?

Я создал модели и контроллеры для пользователей, проектов и комментариев. Комментарии принадлежат проектам и проектам, принадлежащим Пользователям.

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 

comment.rb

belongs_to :project 

routes.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 %> 
+0

http://guides.rubyonrails.org/association_basics.html#the-has_many-through-association –

+0

В routes.rb, я предполагаю, что вашего первого блока будет достаточно. В project.html.erb, что делает этот рендеринг, предположим? В users_controller вы определяете @project 2 раза один за другим ... который, похоже, не предназначен специально. – Raindal

+0

Вы используете те же параметры [: id], чтобы найти своего пользователя и проект для @commemts. – Edward

ответ

0

В вашем project.html.erb файле попробовать используя такой петлю:

<% project.comments.each do |c| %> 
    #do something 
<% end %> 
Смежные вопросы