2013-08-07 3 views
0

приложение/модели/post.rbРазрабатывают вложенная форма, has_many отношения

class User < ActiveRecord::Base 
    has_many :posts, :dependent => :destroy 
    accepts_nested_attributes_for :posts 
    attr_accessible ... :posts_attributes 

... 

приложение/модели/post.rb

class Post < ActiveRecord::Base 
    belongs_to :user 
    has_one :user 

... 

приложение/просмотров/запись/новый

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

    <div><%= f.label :username %><br /> 
    <%= f.text_field :username, :autofocus => true %></div> 

    <div><%= f.label :email %><br /> 
    <%= f.email_field :email %></div> 

    <div><%= f.label :password %><br /> 
    <%= f.password_field :password %></div> 

    <div><%= f.label :password_confirmation %><br /> 
    <%= f.password_field :password_confirmation %></div> 



    <%= f.fields_for :posts do |post_fields| %> 

     <%= post_fields.label :title %><br /> 
     <%= post_fields.text_field :title %></div> 
... 

routes.rb

resources :posts 

Во-первых, форма для пользователей для регистрации работ. Но почтовая часть не отображается в текущей конфигурации. Если я переключу fields_for: posts на fields_for: post, я получаю полную форму, но после отправки я получаю ошибки «не могу назначить защищенный атрибут».

Теперь, если я добавлю: после к attr_accessible, я получаю ошибку «неизвестный параметр после»

Если бы я переместить это контроллер пользователя, как я перезапись по умолчанию разработать контроллеры? Будет ли это даже иметь значение?

ответ

1

Вы должны определить свой attr_accessible в своей модели Post.

приложения/модель/post.rb

class Post < ActiveRecord::Base 
    belongs_to :user 
    has_one :user 
    attr_accessible :title 

end 

Пожалуйста, добавьте в ваш метод контроллера:

resource.posts.build 

Надеется, что это поможет. Спасибо

+0

У меня есть все атрибуты сообщения в attr_accessible – zzzzzzzzzzz

+0

Я обновил ответ. Попробуйте это и дайте мне знать, если он работает или нет. –

+0

Я добавил <% resource.posts.build%> к моему мнению, и это сработало – zzzzzzzzzzz

0

Я добавил <% resource.posts.build%> перед моей формой, и это сработало.

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