сильный текст Я пытаюсь сделать динамические ячейки выбора через "data-remote attribute for select boxes". В консоли кажется, что я получаю правильные параметры (идентификатор выбранного make), но я не могу понять, как передать его контроллеру, чтобы получить модели с соответствующими make_id: s.Передача вложенных параметров для переменных экземпляра
Heres в attached_vehicles образуют часть из _form.html.erb
<div class="vehicle_field">
<%= f.fields_for :attached_vehicles do |av| %>
<p>Select make</p>
<%= av.select :make, (@makes.collect { |m| [m.make_name, m.id] }), { include_blank: "Select make" }, { data: { remote: true, url: "update_make_models", name: "make", update: "#diy_attached_vehicles_attributes_0_model"} } %><br>
<p>Select model</p>
<%= av.collection_select :model, @models, (render "make_models/make_model"), { prompt: "Select model" } %><br>
...
<% end %>
</div>
../views/diys/update_make_models.coffee
$.empty()
.append("<%= escape_javascript(render "make_models/make_model") %>")
../diys_controller.rb
...
def update_make_models
@models = MakeModel.where("make_id = ?", params[:make])
end
def new
@diy = Diy.new
@step = @diy.steps.new
@attached_vehicle = @diy.attached_vehicles.new
@step.add_images_to_steps.new
@makes = Make.all
@models = MakeModel.where("make_id = ?", params[:make_id])
end
...
../views/make_models/_make_model.html.erb
<% @models.collect do |models| %>
<option value="<%= models.id %>"><%= models.make_model_name %></option>
<% end %>
И вот что я получаю в консоли после выбора сделать в блоке выбора делает
Started GET "/diys/update_make_models?diy%5Battached_vehicles_attributes%5D%5B0%5D%5Bmake%5D=12" for ::1 at 2016-02-18 20:22:35 +0200 Processing by DiysController#update_make_models as JS
Parameters: {"diy"=>{"attached_vehicles_attributes"=>{"0"=>{"make"=>"12"}}}}
MakeModel Load (1.0ms) SELECT "make_models".* FROM "make_models" WHERE (make_id = NULL)
Rendered make_models/_make_model.html.erb (3.0ms)
Rendered diys/update_make_models.coffee (491.0ms)
Completed 200 OK in 628ms (Views: 626.5ms | ActiveRecord: 1.0ms | Solr: 0.0ms)
-------------------------------------------------- -------------------------------------------------- -------------------------------- Редактировать
NameError (undefined local variable or method `attached_vehicles_attributes' for #<DiysController:0x5757648>):
app/controllers/diys_controller.rb:28:in `update_make_models'
Теперь он дает мне эту ошибку в консоли после выбора сделать 'NameError (неопределенным локальным переменным или метод' attached_vehicles_attributes' для #): приложение/контроллеры/diys_controller.rb: 28: in 'update_make_models'' –
Ответ обновлен. попробуй это. – Ilya
Да, это сработало! Благодаря! :) –