在提交评论后将current_user存储在字符串中
<%= f.text_field :commenter, :value => current_user, :readonly => "readonly" %>
所以我可以在评论视图中收到电子邮件
<td><%= comment.commenter.email %></td>
但我正在
undefined method `email' for "#<User:0x7f26828>":String
无论如何要解决这个问题?
答案 0 :(得分:3)
您想将整个对象存储在html输入中吗?这应该不起作用,因为你只打算字符串#<User:0x7f26828>
。你应该使用模型之间的关系:
class Commenter < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :commenter
end
表格:
<%= f.text_field :commenter_id, :value => current_user.id, :readonly => "readonly" %>
并将commenter_id
列添加到Comment
模型。然后当你创建时只设置commenter_id
,一切都应该有效。
答案 1 :(得分:0)
您是否在用户模型中使用了attr_accessible?
attr_accessible :email