액티브 모델/레코드 관계와 속성의 위치 (모델) 및 호출 위치에 따라 속성을 호출하는 방법을 더 잘 이해하고자합니다. 예를 들어 내가보기에 그렇게다른 연관된 모델의 속성에 액세스하기 레일 3
def all_recipes
@recipes = Recipe.all
end
같은 레시피 컨트롤러 내에서 속성 dish_name에 액세스 할 수 있도록
<% @recipes.each do |r| %>
<%= r.dish_name %>
<% end %>
지금 내가 내 컨트롤러라고 worldrecipes 그리고 난 내에서 조리법 속성에 액세스하고 싶은 말은 같은 나라에서 모든 요리법을 반환하는 방법을 작성했습니다. 국가가 관계 한 많은 조리법이있다
그래서 내 방법 내 컨트롤러
@worldrecipes = Country.where(:name => params[:name])
볼
def self.top_countries
joins(:recipes).
select('countries.*, count(*) AS recipes_count').
group('countries.id').
order('recipes_count DESC')
end
입니다
<% @worldrecipes.each do |r| %>
<%= r.name %>
<% end %>
그래서 국가 이름 속성에 접근은 간단합니다 그것의 국가 모델과 내 쿼리 결과가 반환되는 (내 생각) 그게 ... 내 질문 사람이
감사를 위해이 문제를 해결 또는 일부 황금 규칙하는 방법에 대한 가이드 있는가, 내가 의미가 국가 이름
희망에 그 링크에 내 요리법 모델에서 dish_name 속성에 액세스 할 방법입니다
@country=Country.where(:name=>params[:name]).first
@[email protected]
그리고보기 :
<% @worldrecipes.each do |r| %>
<%= r.dish_name %>
<% end %>
당신은
'@worldrecipes = Country.where (: name => params [: name])'는 이름이 'params [: name]'또는 해당 국가의 요리법 배열로 이름이 지정된 국가 레코드를 제공합니까 ?? –
그것은 나의 이름으로 params [: name]의 레코드 이름을 제공한다. "Italy"라는 단어가 페이지에 인쇄되어 있는데 이탈리아에는 2 개의 레코드가 있고, 하나만 표시되고 있기 때문에 완전히 맞지 않는다. – Richlewis