【发布时间】:2014-10-31 02:16:55
【问题描述】:
我正在尝试动态填充选择列表,当我对控制器进行 ajax 调用时出现 404 错误。我环顾四周,但找不到我收到此错误的原因。
我要调用的方法所在的控制器。
class UsersController < ApplicationController
def index
#@users = User.all
myList = [["A",1],["B"],2]
@classList = myList
render "index.html.erb"
end
.
.
.
def changeclasses
@classlist = [["B",2]]
end
end
这是我的观点
<%= form_for UnoClass.new do |f| %>
Department: <%= select_tag(:city_id, options_for_select([['Accounting', 'ACCT'], 2),
{ id: 'departSelect'}) %>
<br />
Course : <%= select_tag(:course, options_for_select(@classList)) %>
<br />
Section : <%= f.text_area :section %>
<br />
<%= f.text_area :sessionId, value: request.session_options[:id], style: "display:none;" %>
<%= f.submit %>
<% end %>
<script>
$(document).ready(function() {
$('#departSelect').change(function() {
$.ajax({
url : "/changeclasses"
});
});
});
</script>
还有我的路线.rb
Rails.application.routes.draw do
resources :uno_classes
resources :users
root :to => 'users#index'
get '/changeclasses' => "users#changeclasses"
这是我从 chrome 上的开发者工具中获取的错误。
GET http://localhost:3000/changeclasses 404 (Not Found)
所以,当我对上面的选择框 departSelect 进行更改时,它会调用 changeclasses 但找不到它。
此外,当我对路线进行 rake 时,会显示正确的路线。
changeclasses GET /changeclasses(.:format) users#changeclasses
我还没有实现该方法,但它应该更改@classList 并因此更改课程选择框的内容,并且由于 404 错误它永远不会被调用。
任何帮助将不胜感激,因为我无法弄清楚这里为什么会出现问题。
【问题讨论】:
标签: ruby-on-rails ruby ajax select routes