所以我在模型中有一个电子邮件字段。
我想在此模型中有一个路径,其中一个字段显示在视图中,当我键入一个电子邮件地址,并且该地址与现有模型匹配时,它将被删除。取消订阅时事通讯。
类似的东西:
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方式中运行。
答案 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
我希望它有所帮助。评论它给你错误或不起作用的地方。我会尽力帮忙。
祝你好运。 :)