Я просматривал другие темы, но не смог заставить пример работать.
У меня есть выпадающий список "groups", который, когда я выбрал значение, будет изменять значения для "категорий" выпадающего списка, когда значения для этой выбранной группы
Просмотр (show.html.erb)
<%= form_for(@store_classification, :url => {:action => 'add_classification'}) do |f| %>
<fieldset>
<legend><%= t(:newClassificationDetails) %></legend>
<%= f.hidden_field :store_id, :value => params[:id] %>
<div id="groups" class="fields">
<%= f.label t(:group) %><br />
<%= f.select :group_id,
options_from_collection_for_select(@groups, :id, :name),
:data => { :remote => true, :url => url_for(:controller => :stores,
:action => :update_categories)}%>
</div>
<div id="categories" class="fields">
<%= f.label t(:category) %><br/>
<%= f.select :category_id, options_from_collection_for_select(@categories, :id, :name) %>
</div>
<div class='actions'>
<%= f.submit t(:add) %>
</div>
</fieldset>
<% end %>
Частично (_categories.html.erb)
<div id="categories" class="fields">
<%= f.label t(:category) %><br/>
<%= f.select :category_id, options_from_collection_for_select(@categories, :id, :name) %>
</div>
Контроллер (stores_controller.rb)
def show
@store_classification = StoreClassification.new
@groups = Group.all
@categories = Category.all
end
def update_categories
category = Category.find(:all,
:conditions => ['group_id = ?',params[:selected]])
render :partial => :categories
end
Javascript (application.js)
$(document).ready(function(){
$("#groups").change(function() {
$.ajax({url: '<%= url_for :action => :update_categories, :id => @group_id %>',
data: 'selected=' + this.value,
dataType: 'script'})
});
});
Спасибо за помощь