Ruby on rails 有没有可能让这两种情况同时发生;“注册用户”;及;“未注册用户”;发表评论?

Ruby on rails 有没有可能让这两种情况同时发生;“注册用户”;及;“未注册用户”;发表评论?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我想允许“已注册用户”和“未注册用户”发表评论。 目前,我的应用程序运行良好,它基于唯一注册用户系统(只有注册用户才能发表评论) 我计划将此系统更改为更公开的系统(未注册的用户可以发表评论) 我怎样才能存档?我应该在当前系统中添加什么 我有User模型和Comment模型 在Comment模型中,它有user\u id列,关联定义如下 型号/用户.rb has_many: comments models/comment.rb belongs_to: user <% if !comme

我想允许“已注册用户”和“未注册用户”发表评论。
目前,我的应用程序运行良好,它基于唯一注册用户系统(只有注册用户才能发表评论)

我计划将此系统更改为更公开的系统(未注册的用户可以发表评论)

我怎样才能存档?我应该在当前系统中添加什么


我有
User
模型和
Comment
模型

Comment
模型中,它有
user\u id
列,关联定义如下

型号/用户.rb

has_many: comments
models/comment.rb

belongs_to: user
<% if !comment.user_id.nil? %>
    <%= comment.user.nickname %>
<% else %>
    guest
<% end %>
然后,
comment-create-action
就是这样

....
@comment = Comment.build_from(commentable, current_user.try(:id), params[:comment][:body])  
@comment.title = params[:comment][:title]
@comment.save
....
views/comments/show.html.erb

belongs_to: user
<% if !comment.user_id.nil? %>
    <%= comment.user.nickname %>
<% else %>
    guest
<% end %>

客人

你能发表你的
评论吗?从
方法构建吗?这个代码不起作用吗?@SergeyKishenin谢谢你的回复:)我正在使用gem,它有这个类。它应该在这里的某个地方
https://github.com/elight/acts_as_commentable_with_threading
@santhosh-Nah。我收到以下错误:(ActiveRecord::StatementInvalid(Mysql2::error:列“user\u id”不能为null:插入到
注释中
正文
正文html
注释图标内容类型
注释图标文件名
注释图标文件大小
注释图标更新处
可注释id
可注释类型
创建处
删除处
,父代码<代码>rgt
主题
标题
更新的
用户id
)值('test','p>测试

',NULL,NULL,NULL,NULL,NULL,12,'Topic',2013-05-18 12:11:15',NULL,145,NULL,146',NULL,'2013-05-17 10:11:15',NULL)):您在
Comment
模型中有
validates:user,:presence=>true
行,因此您可以尝试删除它,但无法使用此gem提供的某些方法。此外,您必须通过nil,除非您在
build\u from
方法中有有效的用户,如
def self.build\u from(obj,user\u id=nil,Comment)
。我想这不是最好的主意