1

我希望用户在表单上输入以逗号分隔的登录列表,以便在创建新评论/帖子时通过电子邮件收到通知。我不想将此列表存储在数据库中,因此我将使用 form_tag_helper 'text_area_tag' 而不是表单助手 text_field。我有一个“after_save”观察者,它应该在创建评论/帖子时发送一封电子邮件。据我所知,after_save 事件仅将模型对象作为参数,那么如何将这个非模型支持的登录列表传递给观察者,以传递给在 cc 列表中使用它们的 Mailer 方法。

谢谢

4

3 回答 3

4

您希望将列表存储在虚拟属性中。它将在after_save回调中可用。

于 2010-04-01T18:20:52.087 回答
0

我认为更好的方法是使用无表模型。以Railscatsts 截屏视频为例。这很简单。

于 2010-04-01T18:03:08.933 回答
0

这是您需要的模型(连同表单)和用户模型中的虚拟属性。

# app/models/user.rb
class User < ActiveRecord::Base
 # virutal attribute and validations
 attr_accessor :unpersisted_info
 validates_presence_of :unpersisted_info
end

# app/models/user_observer.rb
class UserObserver < ActiveRecord::Observer
  def after_save(user)
    # logic here... 
  end
end

# form for view... 
<%form_for @user do |f|%>
  <%= f.text_field :unpersisted_info %>
  <%= f.submit "Go" %>
<%end%>
于 2010-04-01T20:51:11.497 回答