2013-07-29 2 views
0

Я создаю блог на Rails с сообщениями, пользователями (аутентификация с помощью Devise), комментариями. Если пользователь напишет комментарий к сообщению, я хочу показать его имя выше его комментария. Как я могу это сделать? Пожалуйста, помогите мнеКак отобразить имя пользователя, который написал комментарий к сообщению (Rails)

Мои комментарии контроллер:

class CommentsController < ApplicationController 
def create 
@post = Post.find(params[:post_id]) 
@comment = @post.comments.build(params[:comment]) 
@comment.save 
redirect_to @post 
end 

def destroy 
@comment = Comment.find(params[:id]) 
@comment.destroy 
redirect_to @comment.post 
    end 
end 

Мои модели:

class Comment < ActiveRecord::Base 
attr_accessible :post_id, :text 
belongs_to :post 
belongs_to :user 
end 

class User < ActiveRecord::Base 
has_many :posts, :dependent => :destroy 
has_many :comments, :dependent => :destroy 

validates :fullname,  :presence => true, :uniqueness => true 
validates :password,  :presence => true 
validates :email,   :presence => true, :uniqueness => true 


devise :database_authenticatable, :registerable, 
    :recoverable, :rememberable, :trackable, :validatable 

attr_accessible :email, :password, :password_confirmation, :fullname 
end 


class Post < ActiveRecord::Base 
attr_accessible :text, :title, :tag_list 
acts_as_taggable 

validates :user_id, :presence => true 
validates :title, :presence => true 
validates :text, :presence => true 

belongs_to :user 
has_many :comments 
end 

ответ

0

Просто назначьте пользователя в comments_controller.rb

def create 
    @post = Post.find(params[:post_id]) 
    @comment = @post.comments.build(params[:comment]) 
    @comment.user = current_user 
    @comment.save 
    redirect_to @post 
end 

В следующий раз потратить немного больше времени на изучение ваш вопрос, это общая задача и очень короткий поиск Google спасло бы вас от необходимости спрашивать.

+0

Спасибо за ваш ответ, но после того, как я это сделал, имя пользователя рядом с комментарием по-прежнему пуст. В моем файле show я использую метод comment.user. Это правильно? – user2596615

+0

Возможно, вы ищете <% = Comment.user.fullname%> – XanderStrike

+0

В конце концов, это сработало. Я создал миграцию, которая добавляет user_id в контроллер комментариев. В любом случае, спасибо за помощь – user2596615

Смежные вопросы