没有数据库表的rails下拉菜单关联....
Posted
技术标签:
【中文标题】没有数据库表的rails下拉菜单关联....【英文标题】:rails drop down menu association without db table .... 【发布时间】:2013-02-26 11:18:42 【问题描述】:尊敬的人...
我有这些模型:
class SanctionedPost < ActiveRecord::Base
attr_accessible :hospital_id, :sanctioned_posts, :designation_id
column :district_id
belongs_to:designation
belongs_to:hospital
belongs_to:district
belongs_to:division
end
class Hospital < ActiveRecord::Base
attr_accessible :beds, :fax_no, :hospital_name, :phone_no, :district_id, :institution_type_id, :location_id, :division_id, :block_id, :hospital_type_id, :IsAdministrativeLocation, :IsTribal, :latitude, :longitude
belongs_to:district
belongs_to:division
belongs_to:block
has_many:sanctioned_posts
end
class Division < ActiveRecord::Base
attr_accessible :division_name, :state_id
has_many:health_dept_locations
belongs_to:state
has_many:districts
has_many:hospitals
has_many:sanctioned_posts
validates_associated :districts
end
我希望能够在我的 sanctioned_posts 中创建下拉列表,以便部门缩小区域,缩小街区,缩小到医院...... (这样我就不必从一百万家医院中选择了......)......
我已经尝试了http://railscasts.com/episodes/88-dynamic-select-menus-revised 和http://railscasts.com/episodes/193-tableless-model 的所有方法,但仍然无济于事......
======================================
我使用简单的表格...这让我可以完成类似的医院创建表格的任务...
<%= f.association :division,label_method: :division_name, value_method: :id, include_blank: false%>
<%= f.input :district_id do %>
<%= f.grouped_collection_select :district_id, Division.order(:division_name), :districts, :division_name, :id, :district_name, include_blank: true, label: 'District' %>
<% end %>
<%= f.input :block_id do %>
<%= f.grouped_collection_select :block_id, District.order(:district_name), :blocks, :district_name, :id, :block_name, include_blank: true, label: 'Block' %>
<% end %>
(+ 随附的咖啡脚本...)
但在我目前的情况下,我不能做同样的事情......因为我没有在 sanctioned_posts 模型中存储部门、地区、块 id ......但我相信 hospital_id 在这种情况下会有所帮助...... ..
非常提前:) ...
问候
【问题讨论】:
【参考方案1】:为什么不使用 CoffeeScript 和 JQuery 对 index 方法进行 REST 请求,您可以相应地配置您的路由? 示例:国家有学校,学校有学生
各州有_many 学校,学校有_many 学生
选择伊利诺伊州的第一个州。伊利诺伊州的 ID 为 11
获取对 /states/11/schools.json 的请求
SchoolsController < ApplicationController
responds_to :json
def index
states = State.find(params[:id)
respond_with states.schools
end
end
【讨论】:
以上是关于没有数据库表的rails下拉菜单关联....的主要内容,如果未能解决你的问题,请参考以下文章
带有 jQuery 的 Rails 中的动态下拉(选择框)菜单不可逆