带有ajax动作的Rails select_tag(Rails 3和jQuery)
我有以下选择列表。
当用户从上面的列表中选择一个选项时,下面的列表应该根据上面的选择用数据库中的值填充。
我想我应该使用onchange事件,但我不知道如何使用它。 请有人帮帮我。 谢谢!
使用Javascript
function update_versions_div(project_id) { jQuery.ajax({ url: "/update_versions", type: "GET", data: {"project_id" : project_id}, dataType: "html" success: function(data) { jQuery("#versionsDiv").html(data); } }); }
调节器
def edit @projects = Project.all @versions = Version.all end def update_versions @versions = Version.where(project_id => params[:project_id]).all render :partial => "versions", :object => @versions end
视图
<%= select_tag "project_id", options_from_collection_for_select(@projects, "id", "title"), :prompt => "Select a project", :onchange => "update_versions_div(this.value)" %> <%= render :partial => 'versions', :object => @versions %>
部分 :_version.html.erb
<%= select_tag "version_id", options_from_collection_for_select(versions, "id", "title"), :prompt => "Select a version" %>
还要在/update_versions
中为/update_versions
添加路由
match "/update_versions" => "#update_versions"
在这里,您应该将
替换为
名称。
我还没有测试过代码,所以可能会有错误。
更新
PullMonkey使用Rails 3示例更新了代码,这显然优于此代码。 请查看http://pullmonkey.com/2012/08/11/dynamic-select-boxes-ruby-on-rails-3/
- PHP有没有喜欢ruby gem bundler?
- Paypal自适应(链式)支付与Rails
- 推送到Heroku时出错 – …出现在组中 – Ruby on Rails
- Ruby on Rails:如何在Windows 7上安装json?
- 在Windows上安装SQLite3 for Ruby – 目前最简单的路线是什么?
- Rails错误:无法访问日志文件。 请确保/home…/log/development.log存在并且是chmod 0666
- rails 3.1:如何重写inherited_resources并允许rails scaffolding再次正常工作?
- user first_name last_name字段用于创建full_name字段
- 如何保持rspec测试DRY有很多“have_link”