принимает вложенные атрибуты для: что я делаю не так
Я пытаюсь создать соединение один-ко-многим в Rails 4. Однако, хотя я не получаю ошибки, вложенный атрибут не сохраняется.
Что я делаю не так?
Модели Станций
class Station < ActiveRecord::Base
has_many :adresses
accepts_nested_attributes_for :adresses
end
Адрес-Модель
class Adress < ActiveRecord::Base
belongs_to :station
end
Станция-Контроллер класс StationsController
def new
@station = Station.new
@station.adresses.build
end
def create
@station = Station.new(station_params)
@station.save
redirect_to @station
end
def index
@stations = Station.all
end
private
def station_params
params.require(:station).permit(:name, adresses_attributes: [ :url ])
end
end
Станция: новая.формат html.erb
<%= form_for :station, url: stations_path do |station| %>
<p>
<%= station.label :name %><br />
<%= station.text_field :name %>
</p>
<%= station.fields_for :adresses do |adress| %>
<div class="field">
<p>
<%= adress.label :url %><br />
<%= adress.text_field :url %>
</p>
</div>
<% end %>
<p>
<%= station.submit %>
</p>
<% end %>
[edit]
Я построил минимальный пример этой проблемы и задокументировал его в качестве пошаговой инструкции здесь: https://groups.google.com/forum/#! тема/rubyonrails-talk/4RF_CFChua0
3 ответа:
Вы должны использовать
form_for @station
вместоform_for :station
(Используйте экземпляр вместо символа).Ура