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)
。我想这不是最好的主意