маршрутизация URL-адресов и путей в рельсах
-
22-07-2019 - |
Вопрос
У меня есть контроллер, у которого есть метод с именем history
class UsersController < ApplicationController
def history
User.return_history(params[:id])
end
end
В моем файле rout.rb есть следующее
map.resources :users, :shallow => true do |user|
user.resources :friends, :shallow => false
user.resources :posts, :collection=>{:no_access => :get}
user.resources :photos
end
Как мне попытаться Ajax вызвать метод истории users_controller.rb
? Использование link_to_remote
следующим образом
link_to_remote 'History', :url=>history_user_path(@user), :update=>"history", :method=>'get'
выдает мне сообщение о том, что history_user_path ()
не найден. Как это может быть? edit_user_path ()
не показывает ошибок, и редактирование даже явно не определено в файле User.rb. Спасибо.
Решение
mapresources: пользователи создают несколько вспомогательных методов url / path, включая edit_users_path. Если вам нужны другие. Вы должны добавить его как параметр: member или: collection для map.resources. Р>
Это позволит вам делать то, что вы хотите:
map.resources :users, :shallow => true, :member => {:history => :get} do |user|
user.resources :friends, :shallow => false
user.resources :posts, :collection=>{:no_access => :get}
user.resources :photos
end
Не связан с StackOverflow