0

Railsアプリに次のビューがあるとします

<% if is_subscriber? %>
<%= render :partial => 'subscriber_page' %>
<% else %>
<%= render :partial => 'payment_form' %>
<% end %>

支払いフォームは、リクエスト後の投稿をコントローラーのショーページに送信します。私のルートファイルには次のものがあります。

  match ':users(/:id)', :to => 'users#submit_payment', :via => :post

私の支払いヘルパーの送信方法は次のとおりです。

def submit_payment
    current_user.is_subscriber = true
    show
end

ただし、これを実行すると、submit_paymentテンプレートが見つからないというエラーが発生します。ヘルパーメソッドが終了したときに、ユーザーの表示ページが単純に再ロードされるようにするにはどうすればよいですか。

4

1 に答える 1

0

ショーページにリダイレクトしようとしているようです。これを試して:

redirect_to user_path(@user) # Note you need to send the show page an :id param

特定のパーシャルをレンダリングしたいだけの場合は、次のようにします。

render :partial => 'show'

ただし、フォームVIA Ajaxを送信するなど、よりシームレスなものが必要な場合は、部分的に返され、成功すると待機中のDIVなどにダンプされますが、少し複雑になります。

于 2012-05-02T16:09:49.493 に答える