2013-03-06 4 views

답변

0

이 시도 할 수 있습니다.

if params[:option] == "1" 
    id = params[:id] 
    @resultsReceived = true 
    @pwvav_ratings = Pwvav.find_by_id(id) 
    #or 
    @pwbab_ratings = Pwbab.find_by_id(id) 
    #or 
    @puvub_ratings = Puvub.find_by_id(id) 
    #or 
    @tic_ratings = Tic.find_by_id(id) 
    unless @pwvav_ratings || @pwbab_ratings || @puvub_ratings || @tic_ratings 
    redirect_to "/view_api", :flash => { :notice => "Sorry, No records returned for #{id}." } 
    end 
end 

당신은 당신의보기에서 각 변수에 .recomendation.split(',')를 호출 할 수 있습니다.

+0

'.recommendation.split (",").을 각각의 뷰에서 호출 할 때 [] : Array'에 대한 메소드가''정의되지 않았습니다. 무슨 일이 일어날 지 모르는 어떤 생각? – Yogzzz

+0

어떤 변수에서'.recomendation.split (',')'를 호출합니까? –

+0

모두 위에. 내 견해로는'@pwvav_ratings','@pwbab_ratings','@ puvub_ratings' 및'@ tic_tatings'을 반복합니다. – Yogzzz

0

모든 행의 끝에 추가하십시오. 그것을 확인하지 않습니다. (!에 주목하지만 당신은 또한 not을 사용할 수 있습니다)

@pwvav_ratings = Pwvav.find_by_id(id).recommendation.split(",") if !Pwvav.find_by_id(id).recommendation.split(",").nil? 

또는 당신은 unless

@pwvav_ratings = Pwvav.find_by_id(id).recommendation.split(",") unless Pwvav.find_by_id(id).recommendation.split(",").nil? 
+0

아마도 다음과 같이 사용하는 것이 좋습니다. 아마도 find_by_id가 결과를 반환하지 않을 것입니다. + 결과가 존재하면 DB에 대해 2 개의 쿼리를 실행 중입니다 (테스트 할 것이고, 하나는 수행 할 것임) – MrYoshiji

+0

사실입니다. 나는 그것이 처음에는 nil을 반환하지 않는다고 가정하고 있습니다. 진짜 대답은 그것을 모델로 가져 가서 거기에 "스코프 (scope)"또는 파인더 (finder)를 갖는 것입니다. 응답을 테스트 한 다음 사용할 수있는 것이 있는지 확인하십시오. 이것은 단지 빠르고 더러운 해결책입니다. – AdamT

관련 문제