Я долгое время искал SO и интернетов, но не смог понять это. У меня есть модель Project, которая всегда имеет один TimerSetting. Не задействованы таблицы соединений.Вложенные атрибуты формы для отношений has_one
В новой форме проекта я пытаюсь использовать вложенные атрибуты для создания записи TimerSetting. Не могу понять эту часть.
Соответствующий код в моделях:
Модель проекта:
class Project < ActiveRecord::Base
attr_accessible :timer_setting_id
has_one :timer_setting
accepts_nested_attributes_for :timer_setting
end
TimerSetting модель:
class TimerSetting < ActiveRecord::Base
attr_accessible :rounding_method, :round_to
belongs_to :project
end
В контроллере проекта:
def new
@project.new
@project.build_timer_setting
end
По мнению:
<%= form_for @project, {remote: true, format: 'json'} do |f| %>
... other stuff ...
<%= f.fields_for :timer_setting do |ts| %>
Rounding Method <%= ts.check_box :rounding_method %>
Round To <%= ts.text_field :round_to %>
<% end %>
<% end %>
Когда я называю маршрут, чтобы сделать форму (проекты/новые), рельсы говорит: unknown attribute: project_id
. Если я закомментируйте строку в контроллере проекта
#@project.build_timer_setting
будет оказывать форму, но поля в блоке f.fields_for :timer_setting
не выводятся.
Любые советы/помощь будут высоко оценены!