尝试从字符串中获取current_user的最新电子邮件

时间:2012-03-19 11:17:44

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

在提交评论后将current_user存储在字符串中

<%= f.text_field :commenter, :value => current_user, :readonly => "readonly" %>

所以我可以在评论视图中收到电子邮件

<td><%= comment.commenter.email %></td>

但我正在

undefined method `email' for "#<User:0x7f26828>":String

无论如何要解决这个问题?

2 个答案:

答案 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