如何使页面不在Rails中重定向

时间:2011-02-04 01:18:46

标签: ruby-on-rails

我有一个名为index的erb文件,其中包含一个表单。举个简单的例子:

<% form_for @foo, :url => {:action => 'bar'} do |f| %>
  <%= f.submit "BAR!" %>
<%end%>

当我点击BAR时!按钮它预先形成我期望的动作,并将它转发到bar.erb文件,显示预期的输出。但是,我希望能够从该页面获取生成的html并将其填充到索引页面上div的innerHTML中。我认为有一种方法,但我必须问,有没有办法实现这一目标?有没有可用的例子?谢谢!

1 个答案:

答案 0 :(得分:0)

你应该能够传递div的id来更新,如下所示:

<% remote_form_for @foo, :url => {:action => 'bar'}, :update => 'id-of-div-to-update' do |f| %>
  <%= f.submit "BAR!" %>
<%end%>

在控制器中:

def bar
  # your code here
  respond_to do |format|
      format.html { redirect_to(xxx) }
      format.js   
    end
end

Rails将查找名为bar.js的模板并将其呈现并将其内容返回给浏览器而不进行重定向。