【问题标题】:rails ajax redirect is using wrong controller actionrails ajax 重定向使用了错误的控制器操作
【发布时间】:2016-04-25 20:06:42
【问题描述】:

我正在尝试将 ajax 重定向到我的“on_clan_change”自定义控制器操作..

我正在通过这个函数调用 ajax:

$(document).on 'change', '#character_clan_id', ->
  $.ajax
    url: 'on_clan_change'
    type: 'GET'
    dataType: 'script'
    data: {
      clan_id: $("#character_clan_id option:selected").val() }

它会生成这样的链接:

Started GET "/users/1/characters/on_clan_change?clan_id=101&_=1461614074287"

我已经设置了这样的路线:

  resources :users, only: [:show, :index] do
    resources :characters
    get 'characters/on_clan_change', to: 'characters#on_clan_change'
  end

来自我的 rake 路线:

 user_on_clan_change GET    /users/:user_id/characters/on_clan_change(.:format)         characters#on_clan_change

在我的角色控制器中,我有一个定义的函数on_clan_change

但是当重定向完成时,它使用characters#show 操作。看起来它给了我默认的显示动作。但是由于路线似乎是正确的,我不知道为什么它使用了错误的操作。

【问题讨论】:

    标签: ruby-on-rails ajax routes


    【解决方案1】:

    设置此链接的正确方法是:

      resources :users, only: [:show, :index] do
        resources :characters do
          collection do
            get 'on_clan_change'
          end
        end
      end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-27
      • 2017-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多