【发布时间】:2012-11-11 12:19:29
【问题描述】:
我正在使用以下Acts as message gem 发送消息。 gem 声明要将消息标记为已读,请执行以下操作:
@message.mark_as_read
下面是我的代码,我在其中迭代每条消息,然后尝试在视图中将消息标记为已读,但这不起作用。我收到错误消息“找不到 id=true 的商店”
通常我会在控制器或模型中设置一个方法来处理 gem 的方法,但我很困惑我应该如何做到这一点,因为 gem 引用了数据库中的一个表并且不需要新的模型或控制器。这真让我抓狂!我应该把这些方法放在哪里(还有更多这样的)?
有什么想法吗?
<% @messages.each do |m| %>
<tr>
<td>
<%= link_to 'Mark Read', "#{m.mark_as_read}", :class => 'btn btn-mini' %>
</td>
</tr>
<% end %>
我的模型
class User < ActiveRecord::Base
acts_as_messageable :table_name => "messages", # default 'messages'
:required => [:topic, :body], # default [:topic, :body]
:class_name => "ActsAsMessageable::Message", # default "ActsAsMessageable::Message",
:dependent => :nullify # default :nullify
end
【问题讨论】:
标签: ruby-on-rails view methods controller