には、多くの場合、Servicepoints
があり、Servicepoint
には多くがあります。Addresses
です。 Servicepoint
はaccepts_nested_attributes_for :addresses
に設定されているので、サービスポイントを作成して同時にアドレスを作成することができます。トリプルネストされたモデルが正しく構築されていない
私の問題は、Servicepoint
にリンクされるアドレスを作成する方法と、Servicepoint
とをOrganisme
にリンクさせる方法を理解できないことです。私はServicepoint
のshow
ビュー内にOrganisme
のビューを作成しています。
ビュー:
<%= form_for([@organisme, @organisme.servicepoints.build]) do |f| %>
<p>
<%= f.label :nom %><br>
<%= f.text_field :nom %>
</p>
<p>
<%= f.label :fax %><br>
<%= f.text_field :fax %>
</p>
<p>
<%= f.label :courriel %><br>
<%= f.email_field :courriel %>
</p>
<p>
<%= f.label :telephone %><br>
<%= f.text_field :telephone %>
</p>
<%= f.fields_for :addresses do |address_attributes| %>
<p>
<%= address_attributes.label :no_civique %><br>
<%= address_attributes.text_field :no_civique %><br>
<%= address_attributes.label :rue %><br>
<%= address_attributes.text_field :rue %><br>
<%= address_attributes.label :ville %><br>
<%= address_attributes.text_field :ville %><br>
<%= address_attributes.label :province %><br>
<%= address_attributes.text_field :province %><br>
<%= address_attributes.label :etat %><br>
<%= address_attributes.text_field :etat %><br>
<%= address_attributes.label :code_postal %><br>
<%= address_attributes.text_field :code_postal %><br>
</p>
<% end %>
<p>
<%= f.submit :Ajouter, class: 'btn btn-info' %>
</p>
<% end %>
コントローラー:
organisme /表示し
def show
@organisme = Organisme.find(params[:id])
end
のServicePoint /作成
def create
@organisme = Organisme.find(params[:organisme_id])
@servicepoint = @organisme.servicepoints.create(servicepoint_params)
redirect_to organisme_path(@organisme)
end
private
def servicepoint_params
params.require(:servicepoint).permit(:nom, :fax, :courriel, :telephone, addresses_attributes: [:id, :no_civique, :rue, :ville, :province, :etat, :code_postal])
end
経路:
resources :organismes do
member { patch :activate }
member { patch :deactivate }
resources :addresses
resources :servicepoints do
resources :addresses
end
end
今私の問題は、Address
入力情報が表示されていないことです。私は@servicepoint
変数を持っていて、それを使ってすべてを作成しようとしましたが、その問題はOrganisme
にリンクできませんでした。
これ以上の情報が必要な場合は、何か追加していただきたいと思います。
モデル:あなたがのServicePointを構築する形で
class Organisme < ApplicationRecord
has_many :addresses
accepts_nested_attributes_for :addresses
has_many :servicepoints
end
class Servicepoint < ApplicationRecord
has_many :addresses
accepts_nested_attributes_for :addresses
belongs_to :organisme
end
class Address < ApplicationRecord
belongs_to :organismereferent, optional: true
belongs_to :organisme, optional: true
belongs_to :servicepoint, optional: true
end
*住所入力情報も表示されていないが*あなたがアドレスをフォームの属性を参照することができない意味ですか? – Pavan
有機体を見ると、フォームのアドレス部分が見えないと言っていますか? – Syl
@Pavan Ya私の見解では、ラベルとtext_fieldsは見えません。 – CNuts