销毁匹配输入的模型

时间:2013-04-28 16:48:04

标签: ruby-on-rails ruby

所以我在模型中有一个电子邮件字段。

我想在此模型中有一个路径,其中一个字段显示在视图中,当我键入一个电子邮件地址,并且该地址与现有模型匹配时,它将被删除。取消订阅时事通讯。

类似的东西:

newsletter_controller.rb

def unsubscribe(email)
  @newsletter = Newsletter.where(:email => email)
  @newsletter.destroy
end

在视图中:

simple_form_for @newsletter do |f|
 f.input :email, method: delete
end

我不知道视图应该如何在Rails方式中运行。

1 个答案:

答案 0 :(得分:1)

config/routes.rb,我想你有resources :newsletters 添加unsubscribe的路由如下:

resources :newsletters do
   post 'unsubscribe', :on => :member
end

检查rake routes,您应该使用POST动词获得unsubscribe_newsletter_path的路径路径。

现在,在您看来:

=form_for(:newsletter, :url => unsubscribe_newsletter_path) do |f|
   =f.label :email
   =f.text_field :email
   =f.submit "Unsubscribe"

(根据simple_form的语法更改)
现在,在newsletter_controller.rb(它应该是newsletter * s * _controller)中,将方法添加为:

def unsubscribe
  @newsletter = Newsletter.where(:email => params[:newsletter][:email])
  @newsletter.destroy if @newsletter
  redirect_to root_path
end

我希望它有所帮助。评论它给你错误或不起作用的地方。我会尽力帮忙。

祝你好运。 :)