我有一个模型,Firms,具有以下属性:状态和名称。我想要做的是让用户查看处于选定状态的名称列表。我能够在下拉框中获取状态,但在选择状态后,我很难在下面显示名称。我在这里看了整个选项,但无法找到解决方案。我认为我需要一些JavaScript?谢谢你的帮助。以下是我的观看代码。
<h4>Select a State</h4>
<%= select_tag :state, options_for_select(Firm.order(:state).uniq.pluck(:state)) %>
以下是我希望结果如下所示的示例:
用户选择州:宾夕法尼亚州
宾夕法尼亚州的名字如下: 盒子公司 汽车公司 。 。
答案 0 :(得分:1)
用户选择一个州,javascript
event
次点火,ajax
来电,结果显示在:
<%= select_tag :state, options_for_select(Firm.order(:state).uniq.pluck(:state)), id: "my-select" %>
<div id='names-wrapper'></div>
$("#my-select").change ->
state = $(this).val()
alert(state)
$.ajax
url: "/firms/get_names"
data:
state: state
success: (data) ->
$('#names-wrapper').html('')
$.each data, (index, value) ->
$('#names-wrapper').append(value)
resources :firms do
collection do
get :get_names
end
end
class FirmsController < ApplicationControler
def get_names
state = params[:state]
names = Firm.where(state: state).pluck(:name)
return render json: names.to_json
end
end