2016-10-27 30 views
0

私は組織モデルを持っており、フォルダ名 "スタンス"の下に一連のネストされたモデルを作成しました。これらのモデルの1つを概要と呼びます。Rails - ネストされたモデルを関連付ける方法

団体は以下のとおりです。

Organisation.rb

has_one :overview 

スタンス::スタンスというフォルダの下にネストされているスタンスリソースの

belongs_to :organisation 

私のコントローラの概要。

私のルートは以下のとおりです。私の立場で

namespace :stance do 
    resources :overviews 
    end 

が部分図、私は、概要テーブルから属性をレンダリングしようとしています。

私が試してみました:

<p><%= @overview.internal_explanation %></p> 
<p><%= @stance.overview.internal_explanation %></p> 
<p><%= @stance::overview.internal_explanation %></p> 

を私は自分の組織のショーでは、この部分を表示したいが、私は概要のテーブルにアクセスする方法を見つけ出すことはできません。私は団体に「スタンス」への参照を追加する必要がありますか?

私はコンソールに私が書く必要があることがわかります。

o = Stance::Overview.create(internal_explanation: "test") 

が、私はコード自体にそれを使用する方法を見ることができません。

+0

このコードからはどのようなエラーが表示されますか? –

答えて

1

あなたは、あなたがRailsのにいくつかのヒントを与える必要があり、標準の命名規則を使用しない場合:

has_one :overview, class_name: Stance::Overview 

belongs_to :organisation, inverse_of: :overview 
これを学ぶため

ベストな場所はhas_manybelongs_to上のソースコードのコメントを見ることです。私は、メソッド名をCTRL-クリックして宝石コードにジャンプしてコメントを見ることができるようにする、 "go to source"/"declaration to"機能を持つエディタを使用することをお勧めします。私はRubyを学んだときにRubymineでこれを使用しました。そして、それは大きな助けとなりました。

+0

ありがとうMatt! – Mel

+0

コントローラの強力なパラメータをホワイトリストに登録するために必要な特別なことはありますか?私はすべてのコントローラーのアクションを変更して「概要」の前に「スタンス::」を追加しましたが、今は強力なパラメーターに対応する設定を見つけることができません。エラーが表示されます:paramが見つからないか値が空です:概要 paramsを次のように記述します:def overview_params params.require(:overview).permit(:internal_explanation、:external_explanation) end – Mel

+0

すべてのコントローラコードを見ずに何を意味するか。このようなサウンドは、個別の質問として投稿してください。どこに詳細を表示するか、エラーメッセージが表示されます。 –