MVCパターンに最も適合する方法でモデル間検索を行うにはどうすればよいですか?他のモデルのビューまたはコントローラからモデルにアクセスする
私はモデルIstc.rbを持っています。だけでなく、これはmodel.findで、それを見つけるだ -
= "Last edited by #{User.find_by_id(istc.user_id).first_name}"
明らかビューでmodel.findを持つことはできません。このモデルに対応するインデックスビューでは、私はこれをしたいです別のモデルでしかし、どのようにこれをリファクタリングしますか?
それはまだビュー層にかなり近いですので、私はこのようなヘルパーを持っていることについて神経質だ:
module UsernameHelper
def user_name(model)
User.find_by_id(model.user_id) unless User.find_by_id(model.user_id).nil?
end
end
は、ユーザーにスコープを持つようにそれを行う方法ですか?
# User.rb
scope :lookup, lambda {|model| where("id = ?", model.user_id)}
# username_helper.rb
module UsernameHelper
def user_name(model)
User.lookup(model).first unless User.lookup(model).first.nil?
end
end
istcs_controllerはそれを処理する必要がありますか?または、IstcとUserモデルの両方に対話する別のコントローラが必要ですか?
私は本当にこの種の問題をエレガントに解決するサンプルアプリケーションを見たいと思います。
モデルとコントローラーまたはビューの間に強制的な1対1はありません。その部分についてあまり心配しないでください。ビューを作成するために必要なモデルを使用します。あなたのモデルの間に協会が設定されていますか? http://guides.rubyonrails.org/association_basics.html それから、Istcモデルを使ってユーザーを見つけることができます。 – Rasmus
私の範囲には最高の解決策です –