Ruby on Rails:railscasts评论系统:在评论数据库中插入用户名?

时间:2013-06-06 05:12:49

标签: ruby-on-rails ruby ruby-on-rails-3 railscasts

我关注的是RyanB的多态关联视频,其中显示了实施评论系统的示例。

http://railscasts.com/episodes/154-polymorphic-association-revised?autoplay=true

我想知道如何将用户名添加到创建新评论的人的数据库中?这样我就可以在视图页面中显示用户名

由于

1 个答案:

答案 0 :(得分:5)

有太多方法可以做到这一点

解决方案1 ​​

如果您要对评论系统使用身份验证,则应添加一个模型用户进行身份验证(建议使用devise

class User < ActiveRecord::Base
  attr_accessible :email, :password, :username
  has_many :comments
end


class Comment < ActiveRecord::Base
 attr_accessible :content, :user_id
 belongs_to :commentable, polymorphic: true
 belongs_to :user
end

并在控制器上(从repository of 154-polymorphic-association-revised获取)

def create
    @comment = @commentable.comments.new(params[:comment])
    @comment.user_id = current_user.id
    if @comment.save
     redirect_to @commentable, notice: "Comment created."
    else
     render :new
    end
end

或解决方案2

您只需向评论模型添加一个属性(无需身份验证)

   class Comment < ActiveRecord::Base
     attr_accessible :content, :username
     belongs_to :commentable, polymorphic: true
   end