2016-07-23 3 views
0

front, rear, side의 값을 tints 엔티티에서 가져 오려고합니다.테이블 속성에서 값을 액세스 할 수 없습니다

제조업체 {id, name}
모델 {id, manufacturer_id, name}
색조 {id, manufacturer_id, model_id, front, side, rear}

이것은 내 tints_controller.rb

def generate 
    @manufacturers = Manufacturer.find(params[:tint][:manufacturer_id]) 
    @models = Model.find(params[:tint][:model_id]) 
    @price_front = Price.find(params[:price][:price_front]) 
    @price_rear = Price.find(params[:price][:price_rear]) 
    @measurements = Tint.where('manufacturer_id' => @manufacturers).where('model_id' => @models) 
    end 

내가 내 generate.html.erb

undefined method `rear' for #<Tint::ActiveRecord_Relation:0x0000000c628610> 
<%= @measurements.rear %>을하려고 한 오류가 발생했습니다

는 여기에 내가 <%= @measurements.inspect %>을 수행 할 때, 제대로 정의 된 tints_controller에서 @measurements를 나타내는 아래 라인을 보여 주었다, 그러나 디버그 화면

Request 

Parameters: 

    {"utf8"=>"✓", 
    "authenticity_token"=>"jfV6SUkNdKWO1f1fyzqS4eLbvszjDPNm2E81M90lnvPArYScSjcjQlxsJdcuqQMJ+mSecCsyVQlhz2cpAH1DUw==", 
    "tint"=>{"manufacturer_id"=>"6", "model_id"=>"3"}, 
    "price"=>{"price_front"=>"1", "price_rear"=>"2"}, 
    "commit"=>"Submit"} 

있습니다. 올바른 model_idmanufacturer_id을 검색하여 테이블에서 전체 행을 가져올 수 있음을 보여줍니다. 내가 <%= @measurements[:front] =><%= @measurements[:id][:front] =>을하려고 노력 , 나는 여전히 오류를 얻을 :하지만 직접 내가 무슨 짓을 <%= @measurements.front =>

#<ActiveRecord::Relation [#<Tint id: 1, manufacturer_id: 6, model_id: 3, front: 40, side: 50, rear: 60, created_at: "2016-07-22 04:14:49", updated_at: "2016-07-22 04:14:49">]> 

수행하여 int에서와 front, side, rear 값을 얻을 수 없습니다입니다.

답변

0

당신이 where를 사용하여 액티브 선택, 그것은 여러 개체가 where 쿼리에서 반환 할 수 있기 때문에, 항상 연관된 객체의 배열 인 ActiveRecord_Relation 객체를 반환합니다.

당신은보기에서 선택해야하는 Tint 지정 중 하나가 필요합니다

@measurements.first.rear 

또는 만 반환되는 첫 번째 객체 선택에 컨트롤러를 수정해야합니다

@measurements = Tint.where('manufacturer_id' => @manufacturers).where('model_id' => @models).first 
관련 문제