Опитвам се да създам връзка като базата данни, посочена по-долу, използвайки devise за създаване на таблицата Customer. Създадох миграции за другите таблици, използвайки ID ing въпреки имената на таблици и ID. Моите модели изглеждат по-долу. Знам, че прекалих с отношенията has_many, но опитвах това цял ден.
Може ли някой да помогне или да покаже правилния начин за настройка на това, така че да мога да създавам, редактирам и актуализирам адреси на потребителя. Постигнах успех с прости вложени атрибути, например Customer/ Direct to address, но когато поставя таблицата в средата, просто не мога да накарам атрибутите на адреса да се показват или актуализират.
Предполагам, че има по-сложен метод за редактиране, създаване, унищожаване, който също трябва да бъде внедрен.
Също така се губя с това как да разреша силни параметри на този тип влагане, тъй като повечето примери, които мога да намеря, са свързани само с таблици, които съдържат user_id в тях, а не такава, която е свързана чрез друга таблица.
браво предварително за насоките.
Таблици клиенти / Създаване на таблици по подразбиране
customer_addresses id address_id address_type_id customer_id
адреси id адрес xzy Marua Road други подробности / Предна къща
address_type id адрес_тип / дом, бизнес и т.н. адрес_тип_описание / къде живеете и т.н.
class Customer < ActiveRecord::Base
has_many :customer_addresses
has_many :addresses
has_many :address_types
accepts_nested_attributes_for :customer_addresses
accepts_nested_attributes_for :address_types
accepts_nested_attributes_for :addresses
end
class UserAddress < ActiveRecord::Base
has_many :customer
has_many :address_types
has_many :addresses
end
class AddressType < ActiveRecord::Base
belongs_to :customer_address
end
class Address < ActiveRecord::Base
belongs_to :user_address
end
<div class="field">
<%= f.fields_for :user_addresses do |ff| %>
<div>
<%= ff.label :address_id %><br />
<%= ff.text_field :address_id %>
<%= ff.fields_for :address do |fff| %>
<%= fff.label :address %><br />
<%= fff.text_field :address %>
<% end %>
<% end %>
</div>
</div>
user controller params
def user_params
params.require(:user).permit(:id, :username, :first_name, :last_name, :email, :password, :password_confirmation,
user_address_attributes:[:user_is, :address_id, :address_type_id],
addresses_attributes:[:id, :address, :other_address_details ],
address_type_attributes:[ :id, :address_type])
end