2012-09-26 4 views
-1

@revenue_categoryRevenue.all(:order => "revenue_made")으로 검색 한 다음 정렬 된 내 수익 테이블에서 하나의 행을 포함하는 ActiveRecord 객체입니다. 따라서 각각의 속성은 컬럼 이름이며, 속성의 값은 특정 행에 대해 해당 컬럼에 저장된 값입니다. 레일에서 루비의 인스턴스 변수에 액세스하는 방법

@revenue_category

은 다음과 같습니다 : 그 속성의 이름이 다른에 저장 될 때 내가 액티브 인스턴스 변수의 특정 속성에 액세스하려면 어떻게

picked_option_(could be a,b or c)_cost 

을 :

--- !ruby/ActiveRecord:Revenue 
attributes: 
    id: 1 
    revenue_made: 3000000 
    premium_option_a_cost: 250 
    premium_option_b_cost: 450 
    premium_option_c_cost: 650 

@option_picked

은 다음과 같습니다 인스턴스 변수?

+0

어디서 @option_picked에 액세스해야합니까? 보기에서? if 문을 사용하지 않는 이유는 무엇입니까? 좀 더 구체적으로 부탁해. –

+0

@IonutHulub 오른쪽 내 의견은 코드에 있습니다 ....'@policy_cost = @revenue_category. # <<'더 구체적으로 접근하는 법을 알지 못합니다. ( – Ryan

+0

배열이나 해시 인 경우 @revenue_category는 무엇입니까? @revenue_category [@option_picked] –

답변

1

동적으로 메시지를 작성하여 @option_picked 개체로 보내는 것처럼 들립니다. 이것을 시도하고 어떻게되는지보십시오.

# Given 
@option_picked = "a" 
lookup = "picked_option_#{ @option_picked }_cost" 

# Attributes might be accessible as methods 
# depending on the nature of the object... 
result = @revenue_category.send(lookup) 

# ...or an attribute lookup like this might work 
result = @revenue_category[lookup] 
+0

불행히도 그게 내가 무엇을 하려는지가 아니다. 나는 ~ @ object_picked'에 저장된 값을 가지고 있고 그 값을'@ revenue_category'의 속성을 선택하기 위해 사용하고 싶다. – Ryan

+0

편집을 보라. 나는 동적 값 조회가 무엇이라고 생각한다. –

+0

'@ revenue_category.send (lookup) '을 시도하면 오류가 누락되며'@revenue_category [lookup]'을 사용하면 오류가 발생하지 않지만'result '에는 포함되지 않습니다 아무것도. – Ryan

관련 문제