2011-03-04 2 views
0

в моем профиле/index.html.haml, У меня естьАякса прибудете для JS (js.erb в рельсах) - URL/нейминг проблемы

:javascript 
    $(document).ready(function(){ 
    $('#clickablething').click(function() { 
     $.get('/profile', {**passed in json data**}, null, 'script'); 
    }) 
    }); 

, который вызывает мое index.js.erb, когда происходит событие щелчка. Однако мне интересно, как я могу переименовать файл .js.erb. Только /profile (или ./profile, или profile) работает, чтобы позвонить специально index.js.erb. Если переименовать файл profile.js.erb он не работает (я попытался установить URL в profile.js, profile.js.erb, profile/profile.js и другие варианты, но это все недействительные запросы, как поджигатель показывает.

В основном я хотел бы назвать index.js.erbprofile.js.erb или что-то еще, и мне интересно, как обратиться к нему в моем get вызова

Спасибо !!

редактировать:. Это очень важно для меня сейчас, так как у меня 2+ js.erb файлы, которые я бы как звонить через ajax GET, когда происходят разные события. Поэтому я не могу просто придерживаться одного index.js.erb. H Я делаю это? Что такое призыв ajax для onescript.js.erb и anotherscript.js.erb?

ответ

0

я решил поставить все в index.js.erb и работают только секции мне нужно условно ...

0

Действие индекса оказывает на index.html.haml по умолчанию или index.js.erb, но вы можете сказать ему, чтобы сделать profile.js.erb, если это то, что вы хотите ...

прибудет действие не имеет ничего общего с файловыми рельсами. Измените свой контроллер на следующее:

def index 
    respond_to do |format| 
     format.js { render 'profile/profile' } 
    end  
end 
+0

но что, если я хочу, чтобы это сделать AJAX GET, чтобы получить profile.js.erb, когда я нажимаю что-то и сделать другой запрос к anotherscript.js.erb, когда я нажимаю что-то еще? – butterywombat

+0

profile.js.erb и anotherscript.js.erb - это просто файлы ... Rails никак не будет обслуживать их в мире. За исключением случаев, когда у вас есть действия контроллера, которые их выполняют. Поэтому, чтобы ответить на ваш вопрос, вам сначала нужно настроить новый маршрут и новый контроллер действий, как и тот, который выше, чем серверы otherscript.js.erb. Затем вы можете сделать ajax для действия контроллера, которое отображается в ваших маршрутах. Индекс - это маршрут по умолчанию для вашего контроллера, вы должны определить другое. Очень хорошее руководство [здесь] (http://guides.rubyonrails.org/routing.html). – alexcepoi

0

У вас есть правильный маршрут для /profile/profile.js?

resources :profiles 
    get :profile 
end 

После этого вы можете попробовать еще раз.

+0

не работает :( – butterywombat

Смежные вопросы