1.我**視圖/演出/ new.html.erb我使用顯示所選類別的子類別中的Rails 4
<%= f.collection_select :category_id, Category.all, :id, :name, {prompt: "Choose a category"} %>
<%= f.collection_select :subcategory_id, Subcategory.all, :id, :name, {prompt: "Choose a subcategory"} %>
它創建這個
並點擊下面的圖片:
從上面的圖片可以看出,根據我選擇的類別,只顯示該類別擁有的子類別。
2.在我的這個工作的演出控制器,我寫了下面的代碼。
def update_sub_categories
@cats = Subcategory.where(category_id: params[:category_id]).all
respond_with(@cats)
end
我曾在同一文件夾中創建一個文件視圖/演出/ update_sub_categories ,並把這個代碼
$("#gig_subcategory_id").empty().append("<%= escape_javascript(render(:partial => "subcategory", :collection => @cats, :as => :cat)) %>")
而且部分在同一文件夾v IEW /gigs/_subcategory.html.erb
<option value="<%= cat.id %>"><%= cat.name %></option>
4.添加在應用程序/ JavaScript的/ gigs.js.coffee
$(document).on 'change', '#gig_category_id', (evt) ->
$.ajax 'update_sub_categories',
type: 'GET'
dataType: 'script'
data: {
category_id: $("#gig_category_id option:selected").val()
}
error: (jqXHR, textStatus, errorThrown) ->
console.log("AJAX Error: #{textStatus}")
success: (data, textStatus, jqXHR) ->
console.log("Dynamic country select OK!")
5.終於在路線
get 'gigs/update_sub_categories' => 'gigs#update_sub_categories'
問:一切正常,我選擇了所選類別的類別和子類別,但它僅在有效views/gigs/new.html.erb,並沒有在views/gigs/edit.html.erb,我做錯了什麼?
你的'edit.html.erb'包含了什麼?你的意思是什麼不起作用? – Pavan