在routes.rb中,我被迫添加:
post 'admin/user_update'
让我的form_tag工作:
form_tag( { :action => :update_user, :id => @user.id }, :remote => :true )
现在我明白了:
Template is missing
Missing template admin/update_user with {:handlers=>[:erb, :rjs, :builder,
:rhtml, :rxml], :formats=>[:html], :locale=>[:en, :en]} in view paths
"/rails/test/app/views"
我的模板是update_user.js.erb:
$('#user-edit-<%= @user.id %>').html(" ");
$('#tr-user-edit-<%= @user.id %>').hide();
如何让路由接受我想用js处理请求?
如何将js添加到:formats?
请不要在回复中使用“资源”一词。我知道这是一条自定义路线。
答案 0 :(得分:0)
如果我理解正确,这是一个jquery问题(尽管你从未明确提到过jquery)
尝试添加:
$(document).ready(function() {
$.ajaxSetup({
'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")}
});
});
到你的application.js文件。
答案 1 :(得分:0)
您可以添加
匹配'update_user /:id'=&gt; 'admin#update_user',:as =&gt; :update_user,:via =&gt; :放
到你的路线。
在视图中,你可以这样做,
form_for(@user, :url => update_user_path(@user.id), :remote => true) do |f| . . .
我认为根据请求类型,它应该选择适当的格式文件,否则 你可以做的是在控制器代码之后,
def update_user . . . respond_to do |format| format.js end end