从另一个控制器重新加载rails视图

时间:2012-05-02 15:56:27

标签: ruby-on-rails ruby-on-rails-3.2

假设我的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模板丢失错误。如何在辅助方法完成时确保简单地重新加载用户显示页面。

1 个答案:

答案 0 :(得分:0)

看起来您正在尝试重定向到显示页面。试试这个:

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

如果您只想渲染特定的部分,请执行以下操作:

render :partial => 'show'

然而,如果你想要更加无缝的东西,比如提交表格VIA Ajax,它会获得部分然后成功将其转储到等待的DIV或其他东西,你也可以这样做,尽管还有更多复杂性。