onChange
機能を追加する必要があります。
<%= f.collection_select :category, Category.all, :id, :name, {prompt: true}, {onchange: "getSubCategory();"} %>
<%= f.collection_select :sub_category, {}, {prompt: true} %>
は、あなたがルートや行動だけでなく
Route
resources(:categories) do
collection do
get(':category_id/get_sub_categories', action: :get_sub_categories)
end
end
categories_controller.rb
を追加する必要があります
application.js
function getSubCategory() {
var currentCategory = $('#category :selected').val();
$.ajax({
url: '/categories/'+ currentCategory +'/get_sub_categories',
dataType: "json",
success: function(data) {
$('#sub_category').html('');
for (i in data.sub_categories) {
var sub_category = data.sub_categories[i];
if (sub_category != undefined) {
$('#sub_category').append("<option value=\""+sub_category.id+"\">"+sub_category.name+"</option>");
}
}
}
});
}
にこの機能を追加します
def get_sub_categories
if params[:category_id]
category = Category.find(params[:category_id])
# Assuming you have one-to-many relationship between category and sub_categories.
sub_categories = category.sub_categories
render json: {sub_categories: sub_categories}
end
end
希望すると、これが役立ちます!
へようこそお好き選択したカテゴリに基づいて、その要求リターンのサブカテゴリーを呼び出す必要があります。どのように何を尋ねるのかを知るには[ヘルプ]をご覧ください。ヒント:[mcve] – mplungjan
可能な複製http://stackoverflow.com/a/7952315/1581358 –
レンダリングされたHTMLコードを追加してください – Julien