Почему у этого пользователя нет приглашения? - PullRequest
0 голосов
/ 01 мая 2011

У меня есть форма, которая создает signed_user.Это первая строка формы:

<%= form_for(setup_user(@signed_user)) do |f| %>

setup_user в моем помощнике приложения:

def setup_user(user)
  user.tap do |u|
    u.build_invitation
  end
end

Это ассоциации моделей:

signed_userмодель:

has_one :invitation, :foreign_key => "sender_id"

invitation модель:

belongs_to :sender, :class_name => 'SignedUser'

Так почему же пользователь создается без приглашения?Я проверил свою консоль и приглашение пользователя - ноль ...

1 Ответ

0 голосов
/ 01 мая 2011

То, что вы хотите - это вложенная форма .Все подробности доступны в статье, но в основном убедитесь, что вы используете accepts_nested_attributes_for в вашей модели SignedUser.

class SignedUser < ActiveRecord::Base

  ...

  has_one :invitation, :foreign_key => "sender_id"
  accepts_nested_attributes_for :invitation, :allow_destroy => true
  ...

end

Если вы хотите, чтобы ваша форма изменяла атрибуты из модели приглашений (в дополнение к атрибутам из SignedUser), вам также нужно будет использовать fields_for в вашей форме.Например:

    <%= form_for setup_user(@signed_user) do |f| %>

      <%= f.label :name %>
      <%= f.text_field :name %>

      // More user form fields

      <%= f.fields_for :invitation do |cf| %>

        <%= cf.label :event_name %>
        <%= cf.text_field :event_name %>

        // More invitation form fields

      <% end %>

      <%= submit_tag %>
    <% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...