0

我正在关注 RyanB 的多态关联视频,该视频展示了实现评论系统的示例。

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

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

谢谢

4

1 回答 1

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

在控制器上(取自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
于 2013-06-06T05:30:48.983 回答