我一直在搜索,无法弄清楚为什么这不起作用。
我正在尝试测试一个非常基本的 ajax 操作。这是我的代码:
控制器:
def commit
respond_to do |format|
format.html { redirect_to :action => "index" } # see note 1
format.js { render :layout => false } # see note 2
format.js { render :nothing => true }
end
end
看法:
<%= link_to "commit", :action => "commit", :remote => true %>
<%= form_tag( :action => "commit", :remote => true, :method => :post) do %>
<%= submit_tag "commit" %>
<% end %>
<div id='message'></div>
提交.js.erb
console.log('committed');
$('#message').html("committed");
问题是我会使用 commit 方法,但是页面会重新加载,这违背了 remote=>true 的观点而且 commit.js 似乎从未被调用过。
注意 1:如果我排除这一行,我会得到 /commit 的空白页。包含它会使页面重新加载
注2:我已经尝试了其他SO帖子建议的这两种方法
注3:我已经尝试过使用link_to和form_tag
任何人都可以帮忙吗?谢谢!