0

だから私はモデルに電子メールフィールドを持っています。

フィールドがビューに表示されるこのモデルのパスが必要です。電子メール アドレスを入力すると、そのアドレスが既存のモデルと一致すると削除されます。ニュースレターの購読を解除するため。

このようなもの:

ニュースレター_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 Way でビューがどのように機能するかわかりませんでした。

4

1 に答える 1

1

ではconfig/routes.rb、次のようresources :newsletters にルートを追加したとします。unsubscribe

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

を確認してください。POST 動詞とrake routes同様にルート パスを取得しているはずです。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

お役に立てば幸いです。エラーが発生する場所や機能しない場所をコメントしてください。私は助けようとします。

幸運を。:)

于 2013-04-28T17:12:56.867 に答える