Ich habe eine App mit einem Benutzermodell, das viele Adressen haben kann. Ich möchte in der Lage sein, dem Benutzer eine Adresse hinzuzufügen, wenn sie sich über verschachtelte Attribute anmelden. Ich benutze auch Devise für das Benutzermodell.Verschachtelte Attribute Formular nicht in den Ansichten anzeigen Rails 4
Modelle:
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
Registrierung Controller:
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
Felder für paßgenau darstellbare Form:
<%= f.simple_fields_for :addresses do |address|%>
<%= address.input :housenumber %>
<%= address.input :postcode %>
<%= address.input :streetname%>
<%= address.input :town%>
<%= address.input :city%>
<%end%>
haben Sie herausfinden, wie dies zu tun? Ich stecke mit dem gleichen Problem – Mel
Nein, ich gab es auf und machte das Design anders, obwohl ich bei der Arbeit an einem anderen Aspekt erkannte, dass meine benutzerdefinierte Controller nicht tatsächlich verwendet wurde, und es war immer noch mit dem Gerät. Ich würde vorschlagen, zu überprüfen, dass der richtige Controller verwendet wird, weil ich das Gefühl habe, dass das mein Problem war. – ZSOR