У меня возникли проблемы с получением has_many: через объединение, работающее с сильными параметрами Rails 4. У меня есть модель под названием Checkout
, и мне нужно выбрать человека из модели Employee
в новой форме оформления. Checkouts и Employees связаны с помощью модели Employment
.
Я получаю эту ошибку, когда пытаюсь создать новую проверку:
NoMethodError in CheckoutsController#create
undefined method `employee' for #<Checkout:0x007ff4f8d07f88>
Кажется, что что-то не так с моим действием на создание, с моими параметрами проверки или с моей новой формой выписки. Здесь создайте действие:
def create
@user = current_user
@checkout = @user.checkouts.build(checkout_params)
respond_to do |format|
if @checkout.save
format.html { redirect_to @checkout, notice: 'Checkout was successfully created.' }
else
format.html { render action: 'new' }
end
end
end
Мои параметры проверки:
def checkout_params
params.require(:checkout).permit(:job, :employee_ids, :shift, :date, :hours, :sales, :tips, :owed, :collected, :notes)
end
Моя новая форма оформления заказа:
<div class="field">
<%= f.label :employee %><br>
<%= f.collection_select(:employee_ids, Employee.all.collect, :id, :full_name, {:prompt => "Please select"} ) %>
</div>
Но я не могу понять, что изменилось с Rails 4 и сильными параметрами. В Rails 3 этот тип ассоциации и формы работал у меня, используя attr_accessible вместо strong_parameters.
Релевантные файлы
Полная ошибка ошибки: https://gist.github.com/leemcalilly/0cb9e2b539f9e1925a3d
модели/checkout.rb: https://gist.github.com/leemcalilly/012d6eae6b207beb147a
Контроллеры/checkouts_controller.rb: https://gist.github.com/leemcalilly/a47466504b7783b31773
мнение/извлечения/_form.html.erb https://gist.github.com/leemcalilly/ce0b4049b23e3d431f55
модели/employee.rb: https://gist.github.com/leemcalilly/46150bee3e6216fa29d1
Контроллеры/employees_controller.rb: https://gist.github.com/leemcalilly/04f3acdac0c9a678bca8
модели/employment.rb: https://gist.github.com/leemcalilly/6adad966dd48cb9d1b39
дб/schema.rb: https://gist.github.com/leemcalilly/36be318c677bad75b211