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
내게는 최고의 솔루션입니다. –