2010-12-19 4 views
0

해시가보기의 다른 해시에 포함되어 있는지 확인해야합니다. 그러나 나는 해쉬를 올바르게 만들지는 모르겠다. 뷰에 "< % = y %>"를 넣으면 y의 모든 출력을 보여 주므로 그 배열을 생각하게 만든다. 보통 해쉬라면 "#"맞을 것입니다.해시의 단일 인스턴스를 만들고 레일에서 다른 해시와 비교 하시겠습니까?

나는 "더 Y가 X에 있지 않습니다"x는 y를해야하지만 난 아직도 얻을 것을 알고

someview.html.erb 

<% x = @books.sifi %> 
<% y = { :title => spaceship, :author => mark, :price => 9.99, :genre => sifi} %> 

<% if x.include?(y) %> 
    yes y is in x 
<% else %> 
    no y is not in x 
<% end %> 

그래서 어떤 도움을 주시면 감사하겠습니다 레일 꽤 새로운! 고마워 ~!

+1

이 너무 많이 논리처럼 보인다 관점. 그것을 도우미에 넣어보십시오. –

+0

그래, 그 논리가 많이 있지만 이것은 사용자 행동을 기반으로 새로 고침 아약스 전화에 묶여 있고, 내가보기에 뱉어가 무엇인지 결정하기 위해 새로 고침에이 논리를 실행해야합니다 ~ 더 나은/이것을하는 더 쉬운 방법? – thedeepfield

+0

디버그 도우미를 사용하는 데 도움이 될 수 있습니다. http://api.rubyonrails.org/classes/ActionView/Helpers/DebugHelper.html – noodl

답변

1

y은 사용자가 정의한 해시입니다. x은 아마 배열 일 것입니다. 이 점에서 코드는 괜찮습니다. 당신이 할 수있는 객체의 클래스를 결정하기 위해서 : <%= y.class %>.

(그래서, 다음 '' 또는 ""에 그 값을 넣어 두 경우 등 SIFI, 우주선이보기의 변수는? 아마 아닐 것으로 추정하고있다.)

+0

우주선, 마크, 9.99 등은 모두 변수입니다. <%= x %>을보기에 넣으면 "######"이 나오고 <% = x [0] [: title] %>와 같이하면 실제 문자열이 나옵니다. 해시 .. – thedeepfield

+0

사실, x는 해시 (Hash)의 배열입니다. 따라서 x [0]은 Array x의 첫 번째 해시 ("record")에 액세스하고 [: title]은 해시에서 해당 키 값에 액세스합니다. – Zabba

+0

x와 y를 비교할 방법이 없습니까? 해시의 x- 배열에 y-hash가 있는지 확인하고 싶습니다 ... – thedeepfield

관련 문제