2013-12-17 4 views
0

나는 부분 인 인 제품이 있습니다. 조립품이 하나 밖에 없었습니다. 번들이라고합니다.Ruby on Rails의 Find_by_id

원래하는 제품 어떤 부품을을 한 것으로 주어, 나는이 작품, 내 옵션을 표시

<% if @product.parts.any?(&:in_stock?) %> 
HERE I SHOW OPTION FORM 
<% end %> 

를 사용하는 경우 추가 옵션을

포함되어 있습니다. 그러나 지금 나는 또 다른 옵션을 보여주고 싶다.

해당 ID에 옵션을 표시해야합니다. 내 원래 제품의 ID가 '번들'인 것 같습니다. 따라서 시도했습니다.

<% if @product.parts.find_by_id('bundle') %> 

그러나 내 옵션이로드되지 않습니다. 내가 뭘 잘못했는지 모든 아이디어? 나는 실수를하지 않는다. 단지 그 이드를 찾는 것이 아니다.

+0

은 '번들'int입니까? try find_by_id (params [: part_id]) –

+1

스키마는 어떻게 생겼습니까? –

답변

2

당신이 friendly_id 같은 보석을 사용하지 않는 한, 나는 생각하지 않는다 2.1

레일 4 & 난사은 부품의 ID는 '번들'이 될 것입니다. 일반적으로 자동 증가 정수입니다. 그게 이드라는 것을 100 % 확신합니까? 나는 레일을 찾는 방법을 찾아내는 것이 좋습니다. here. find_by_name이 필요할 것 같습니다. 특정 제품의 일부가로드하는

t.integer "part_id" 

그건 DB :

0

내 스키마는 내가 찾고 있었던 것은 정수로 나타났다

Spree::AssembliesPart Load SELECT "spree_assemblies_parts".* FROM "spree_assemblies_parts" WHERE "spree_assemblies_parts"."assembly_id" = 4 AND "spree_assemblies_parts"."part_id" = 6 LIMIT 1 

내가 다음로드 된 part_id를 사용하는 내 경우는 6

이 find_by 방법이었다 일 :

<% if @product.parts.find_by_id('6') %>