私は、各行に複数の外部キーを含むテーブル(エンドウ豆)を持っていて、インデックスビューにそれらをリストしています。私は、同じ外来キーを含む他のテーブル(ニンジン)を持っています。異なるテーブルで同じ外部キー値を見つけるためのRubyの構文
最初のテーブル(エンドウ豆)から、同じ外来キー値を含む他のテーブル(ニンジン)の行を見つけて、条件文の中で使用する変数(@p)に入れます最初のテーブル(エンドウ豆)のインデックスビューに表示されます。これまでに作成したものはエラーを投げているわけではないので、診断するのは難しいです。
私はオペランドを変更しようとしましたが、成功しませんでした。
エンドウモデル(ないデータベースの変更がないため、モデルにメソッドを追加する)
def pea
@p = Carrot.find({ :fk_id => 'pea.fk_id', :fk2_id => 'pea.fk2_id' })
end
(各ループ内)ピーズインデックスビュー対応
<% if @p.present? %>
<p>Say This</p>
<% else %>
<p>Say That</p>
<% end %>
私はある行を見つけたら2つの外部キーと一致します(fk_id & fk2_id)一致が一意であることがわかります。言い換えれば、ピーナッツの同じ2つの外部キー値を含むニンジンの行は1つだけになります。
私は本当に明白な何かが欠けているように感じます。私は同様の質問を検索しており、このシナリオとソリューションを一緒にハックするほど十分には一致しません。
Pea belongs_to :Carrot
Carrot has_one :Pea
正しい方向への助けに感謝します。
RoRの - レール4.2.5.2 /ルビー2.3.1p112(2016年4月26日改訂54768)[x86_64の-darwin14]、sqlite3の(DEV)、Postgresl(製品版)、マック
find
なぜ複数の外部キーがあるのか分かりません。 'Carrot has_many:peas'をしてはいけませんか? –
アプリの文脈で、いいえ、ニンジンは多くのエンドウ豆を持っていません。実際には、エンドウ豆とは完全に独立しています。外部キーは他の2つのテーブルからのものです。私はもっとはっきりしていたはずだったが、質問を複雑にすることを望まなかった。 –
私はあなたの構文に何の問題も見当たりませんし、あなたの問題は構文に関して何かを持っているとは思えませんが、それはあなたの件名に顕著に表示されています(すなわち質問の最も重要な部分、あなたの質問をクリックするかどうかの決定)。 Ruby構文の正確な問題は、あなたが持っていることを明確にすることはできますか? –