2015-06-17 2 views
0

У меня возникли проблемы с просмотром поля вложенных атрибутов в моей форме. Я нахожусь в представлении jobs/new, и хочу иметь форму пользователя, которая создает задание, а также пользователя.Поле формы вложенных атрибутов не отображается

У меня есть все, что в этом ответе Rails 4.0 with Devise. Nested attributes Unpermited parameters

Я также проверил этот Nested attributes not showing up in simple form

Но последний ответ уже относится к моему коду, и это не отображается. Мой код:

Работа Модель

belongs_to :user 

Модель пользователя

has_many :jobs 
accepts_nested_attributes_for :jobs 

devise :database_authenticatable, :registerable, 
    :recoverable, :rememberable, :trackable, :validatable, :confirmable 

Работа/новый вид

<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %> 
    <%= devise_error_messages! %> 


    <%= f.fields_for :jobs do |builder| %> 
    <%= render "job_detail_fields", :f => builder %> 
    <% end %> 

    <%= f.email_field :email, placeholder: "Enter email", class: "full-width form-field" %> 

<% end %> 

_job_details_fields

<%= f.text_area :job_description, placeholder: "Job description..." %> 

:job_description text_area не отображается. Если я изменю форму вложенных атрибутов на что-то вроде f.fields_for :job, она будет отображаться, но при отправке формы я получаю непредвиденное задание параметра как ошибка. Я уверен, что jobs верен, но я не знаю, почему он не отображается. Есть идеи?

ответ

0

Ах, идущий по рельсам Бросок, похоже, мне нужно build: job_description.

Это исправлено 1.times { @resource.jobs.build } в моем диспетчере рабочих мест.

Работа контроллера

def new 
    @resource ||= User.new 
    1.times { @resource.jobs.build } 
end 
+2

вам не нужен '1.times' только' @ resource.jobs.build' –

+0

True. Спасибо @PiotrKruczek! – MikeHolford

Смежные вопросы