1

这是我在我的网站上批准某些事件的方式。这个想法是:对于每个新事件,都会向“admin@example.com”发送一封电子邮件。该电子邮件包含某些内容和指向更改“已批准”布尔值的方法的链接。除了电子邮件中生成的 url 之外,一切都有效。
它生成http://example.com/approve_event。我收到错误消息“找不到 ID 为 nil 的事件”

我应该怎么做才能获得一个指向http://example.com/approve_event?=23之类的网址

管理员通知程序

  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)

事件控制器

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

1 回答 1

0

您需要确保@event在 mailer 方法中正确定义了变量(approve_event在这种情况下),以确保它在视图中可用。

有关 Rails 指南的更多信息

于 2012-04-04T19:01:25.070 回答