У меня есть приложение с моделью пользователя, которая может иметь много адресов. Я хочу иметь возможность добавлять адрес пользователю, когда он регистрируется через вложенные атрибуты. Я также использую программу для модели пользователя.Вложенные атрибуты не отображаются в представлениях Rails 4
Модели:
class Address < ActiveRecord::Base
belongs_to :user
end
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :addresses
accepts_nested_attributes_for :addresses
end
Регистрация контроллер:
class Users::RegistrationsController < Devise::RegistrationsController
before_action :set_user, only: [:show]
def new
resource = build_resource({})
resource.addresses.build
respond_with_navigational(resource){ render_with_scope :new }
end
def create
super
end
private
def set_user
@user = User.find(params[id])
end
def user_params
params.require(:user).permit(:email, :password, :first_name,
:last_name, :phonenumber, :addresses_attributes => [:postcode,
:housenumber, :streetname, :city, :town])
end
end
поля для формы в целях регистрации:
<%= f.simple_fields_for :addresses do |address|%>
<%= address.input :housenumber %>
<%= address.input :postcode %>
<%= address.input :streetname%>
<%= address.input :town%>
<%= address.input :city%>
<%end%>
вы выяснить, как это сделать? Я застрял с той же проблемой – Mel
Нет, я отказался от этого и сделал дизайн другим, хотя я понял, что при работе с другим аспектом, который мой пользовательский контроллер фактически не использовался, он все еще использовал его. Я бы предложил дважды проверить, что правильный контроллер используется, потому что я чувствую, что это проблема с моей. – ZSOR