如何在Rails 3.1的邮件内的link_to中传递值?

时间:2012-04-04 17:13:07

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

这是我批准我网站中某些事件的方式。 这个想法是: 每次新活动,都会向“admin@example.com”发送电子邮件。该电子邮件包含某些内容以及指向更改“已批准”布尔值的方法的链接。 一切都与电子邮件中生成的网址不同 它会生成http://example.com/approve_event。我收到错误'无法找到id为nil的事件'

如何获取指向http://example.com/approve_event?=23

之类的网址

AdminNotifier

  def approve_event(event)
    @event = event    
    mail(:to => "admin@example.com", :subject => "Event pending of approval")
  end

电子邮件视图html

  = link_to "Approve", approve_event_url(:id=> @event.id)

EventController

 def approved
   @event = Event.find(params[:id])
   @event.approved = true
   @event.save
 end

1 个答案:

答案 0 :(得分:0)

您需要确保在邮件程序方法中正确定义@event变量(在本例中为approve_event),以确保它在视图中可用。

More info on the Rails guides