2010-07-28 3 views
0

В routes.rb я был вынужден добавить:Rails3 формат пользовательских маршрут


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" 

Мои template is update_user.js.erb:


$('#user-edit-<%= @user.id %>').html("&nbsp;"); 
$('#tr-user-edit-<%= @user.id %>').hide(); 

Как я могу получить маршрут, чтобы принять, что я хочу обработать запрос с помощью js?

Как добавить js в: форматы?

Пожалуйста, не используйте слово «ресурсы» в своем ответе. Я знаю, что это настраиваемый маршрут.

ответ

0

Если я правильно понять, это проблема JQuery (хотя вы никогда явно не упоминается JQuery)

Попробуйте добавить:

$(document).ready(function() { 
    $.ajaxSetup({ 
     'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")} 
    }); 
}); 

в файл application.js.

0

Вы можете добавить

матч 'update_user /: ID' => 'админ # update_user': а =>: update_user,: через =>: положить

на маршрутах.

Учитывая, что вы можете сделать,

 
form_for(@user, :url => update_user_path(@user.id), :remote => true) do |f| 
. 
. 
. 

Я думаю, что в соответствии с типом запроса, он должен подобрать подходящий формат файла, иначе вы можете сделать это после того, как ваш код контроллера

 
def update_user 
    . 
    . 
    . 
    respond_to do |format| 
    format.js 
    end 
end 
Смежные вопросы