Динамические select'ы в RoR из базы данных
задал aay 3 месяца назад
Прочитал много статей, но так и не получилось сделать динамические селекты, использу jQuery
Могли бы привезти пример кода, с пояснениями. Интересует и контроллер и отображения и сам код в файле "...js.coffee"?
У меня ассоциация has_many belong_to, т.е. выбирая, например, телевизор Panasonik, в следующем select'e появлялись только модели этой марки.
Пробывал делать так:
и item.js.coffee
Могли бы привезти пример кода, с пояснениями. Интересует и контроллер и отображения и сам код в файле "...js.coffee"?
У меня ассоциация has_many belong_to, т.е. выбирая, например, телевизор Panasonik, в следующем select'e появлялись только модели этой марки.
Пробывал делать так:
class Cattkanvert < ActiveRecord::Base
attr_accessible :title, :price
has_many :items
belongs_to :cattipvert
end
class Cattipvert < ActiveRecord::Base
attr_accessible :title
has_many :items
has_many :cattkanverts
end
Представление:
<td><%= f.label :cattipvert_id, 'Тип'%></td>
<td><%= f.collection_select :cattipvert_id, Cattipvert.order(:title), :id, :title, include_blank: true%></td>
<td><%= f.label :cattkanvert_id, 'Ткань'%></td>
<td><%= f.grouped_collection_select :cattkanvert_id, Cattipvert.order(:title), :cattkanverts, :title, :id, :title, include_blank: true%></td>
и item.js.coffee
jQuery ->
$('#item_cattkanvert_id').parent().hide()
cattkanverts = $('#item_cattipvert_id').html()
$('#item_cattipvert_id').change ->
cattipvert = $('#item_cattipvert_id :selected').text()
escaped_cattipvert = cattipvert.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g, '\\$1')
options = $(cattkanverts).filter("optgroup[label='#{escaped_cattipvert}']").html()
if options
$('#item_cattkanvert_id').html(options)
$('#item_cattkanvert_id').parent().show()
else
$('#item_cattkanvert_id').empty()
$('#item_cattkanvert_id').parent().hide()
Делал из примера railscasts.com, где ошибка?в браузере выдает:SQLite3::SQLException: no such column: cattkanverts.cattipvert_id: SELECT "cattkanverts".* FROM "cattkanverts" WHERE "cattkanverts"."cattipvert_id" = 2