【发布时间】:2016-04-09 15:24:23
【问题描述】:
我正在使用 AJAX 来监听我的表单上名为 question_language_id 的下拉列表的更改,当它发生更改时,我想运行一些 javascript 来对我的表单进行一些更改。
我遇到的问题是 rails 直接进入 Show 动作而不是我的 update_questions_direction 动作,这导致了 show 动作 'Question could not be found with id=update_questions_direction'. 中的错误
rake 路由的顺序似乎并没有改变这一点。
我的 AJAX 调用如下:
$(document).on 'change', '#question_language_id', (evt) ->
$.ajax 'update_questions_direction',
type: 'GET'
dataType: 'script'
data: {"language_id": $("#question_language_id option:selected").val()}
error: (jqXHR, textStatus, errorThrown) ->
console.log("AJAX Error: #{textStatus}")
success: (data, textStatus, jqXHR) ->
console.log("Direction was changed")
来自 routes.rb:
get 'questions/update_questions_direction', as: 'update_questions_direction'
resources :categories do
resources :questions do
resources :answers
member do
get :quizzes
end
end
end
rake 路由的相关输出:
update_questions_direction GET /questions/update_questions_direction(.:format) questions#update_questions_direction
category_question GET /categories/:category_id/questions/:id(.:format) questions#show
我不明白为什么会发生这种情况 - 为什么 rails 认为 update_questions_direction 是 id?
我得到的错误是:
ActiveRecord::RecordNotFound in QuestionsController#show
Couldn't find Question with 'id'=update_questions_direction
非常感谢您的帮助,感谢您的宝贵时间。
【问题讨论】:
标签: ruby-on-rails ajax routes