2017-06-20 8 views
0

私は、OrganismereferentとOrganismeがhas_manybelongs_toの関係を持つクラスのアドレスを持っています。また、生物相違と生物相違がありますaccepts_nested_attributes_for :addresses1つのクラスのaccepts_nested_attributesを使用する2つの異なるクラス

私の問題は、生物多様性のクラスがすべて正常に機能していて、アドレスで新しい生物相違を作成することができましたが、 enter image description here

マイモデル::Organisme

ため

class Organismereferent < ApplicationRecord 
    has_many :addresses 
    has_many :referents 
    accepts_nested_attributes_for :addresses 
end 

class Organisme < ApplicationRecord 
    has_many :addresses 
    accepts_nested_attributes_for :addresses 
end 

class Address < ApplicationRecord 
    belongs_to :organismereferent 
    belongs_to :organisme 
end 

コントローラ 彼らの両方が、私はコンソールだけでこれを取得するすべてのエラーメッセージを与えることなく動作を停止しましたOrganismereferentため

def new 
    @organisme = Organisme.new 
    @organisme.addresses.build 
end 

def create 
    @organisme = Organisme.new(organisme_params) 
    @organisme.status = true 
    @organisme.save 
    redirect_to @organisme 
end 

private 
    def organisme_params 
    params.require(:organisme).permit(:nom, :telephone, :courriel, :fax, addresses_attributes: [:id, :no_civique, :rue, :ville, :province, :etat, :code_postal]) 
    end 

コントローラー:

def new 
    @organisme = Organismereferent.new 
    @organisme.addresses.build 
end 

def create 
    @organisme = Organismereferent.new(organisme_params) 
    @organisme.active = true 
    @organisme.save 
    redirect_to @organisme 
end 

private 
    def organisme_params 
     params.require(:organismereferent).permit(:nom_organisation, :bureau, :telecopie, :courriel, :site_web, addresses_attributes: [:id, :no_civique, :rue, :ville, :province, :etat, :code_postal]) 
    end 

私は何も追加して喜んでいるでしょうので、情報が重要であるかもしれない他に何かわかりません。

+0

のようなアドレスモデルを変更してくださいあなたは私たちに、エラーメッセージが表示さでした?。 '@ organisme.save!'はエラーメッセージを表示します。 –

+0

@ JunanChakmaそれは私にこの 'Validation failed:Addresses organismeが存在しなければならない 'というものを与えてくれます。 – CNuts

答えて

1

class Address < ApplicationRecord 
    belongs_to :organismereferent, optional: true 
    belongs_to :organisme, optional: true 
end 
+0

それは完璧に機能してくれてありがとうございます:Dそれはそれぞれのアドレスに対して両方を持っていて、それらのうちの1つしか持っていないのですか? – CNuts

+1

'Address'がそれを作成している間に' organisme'の存在を確認するので、うまくいきませんでした。しかし、そのアドレスの作成中に両親の 'organisme'がまだ作成されていないので。それはなぜこの検証エラーを与えているのですか? –

関連する問題