我希望用户在表单上输入以逗号分隔的登录列表,以便在创建新评论/帖子时通过电子邮件收到通知。我不想将此列表存储在数据库中,因此我将使用 form_tag_helper 'text_area_tag' 而不是表单助手 text_field。我有一个“after_save”观察者,它应该在创建评论/帖子时发送一封电子邮件。据我所知,after_save 事件仅将模型对象作为参数,那么如何将这个非模型支持的登录列表传递给观察者,以传递给在 cc 列表中使用它们的 Mailer 方法。
谢谢
我希望用户在表单上输入以逗号分隔的登录列表,以便在创建新评论/帖子时通过电子邮件收到通知。我不想将此列表存储在数据库中,因此我将使用 form_tag_helper 'text_area_tag' 而不是表单助手 text_field。我有一个“after_save”观察者,它应该在创建评论/帖子时发送一封电子邮件。据我所知,after_save 事件仅将模型对象作为参数,那么如何将这个非模型支持的登录列表传递给观察者,以传递给在 cc 列表中使用它们的 Mailer 方法。
谢谢
您希望将列表存储在虚拟属性中。它将在after_save
回调中可用。
我认为更好的方法是使用无表模型。以Railscatsts 截屏视频为例。这很简单。
这是您需要的模型(连同表单)和用户模型中的虚拟属性。
# 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%>