2012-07-27 2 views
0

컨트롤러를 통해 뷰로 전달할 이미지가 첨부 된 모델이 있습니다. 이것은 내가 나 자신을 시도하는 방식이지만 작동하지 않습니다클립 클립 이미지를 컨트롤러에서 레일 뷰로 전달

모델 :

class CustomForm < ActiveRecord:Base 
    has_attached_file :background_image, 
     :storage => :s3, 
     :bucket => "asdf", 
     ... 

    belongs_to :project 

컨트롤러 :

class FormsController < ApplicationController 
    before_filter :get_project 

    def show 
     @form = @project.forms.find(params[:id]) 
     @bg_image = @form.background_image.url 
    end 

    def get_project 
     @project = current_account.projects.find(params[:project_id]) 
    end 

보기 :

<html> 
    <head> 
    </head> 

    <body> 
     <%= image_tag @bg_image %> 
    </body> 
</html> 

이는 "수 생성 '문자열을 nil로 변환하지 않습니다'오류가 발생하고 "< % = image_tag @bg_image %>"행을 가리키며 @bg_i라고 가정합니다. 마법사는 없다. 여기서 내가 뭘 잘못하고 있니? 가다가는 IMAGE_TAG 라인을 평가 후면해야 할 수도 있습니다

+0

'@ 프로젝트 '가 올바르게 설정되어 있습니까? 그렇다면'@ form.background_image'는 nil입니까 아니면 값이 있습니까? –

+0

@form 변수가 잘 작동하기 때문에 확신합니다. –

+0

흠,'@ bg_image'가 작동하지 않지만'@form.background_image.url'이 왜 그런지 궁금합니다. –

답변

1

는 :

<%= eval("image_tag #{@bg_image}") 

당신이 컨트롤러 @bg_image 설정을함으로써 아무것도 저장하지 않기 때문에, 당신은 쉽게 할 수 있습니다. :

나노초는 더 빨라질 것이고 훨씬 더 깨끗해 보입니다.

+0

"이 잘못된 인수 수 (0은 1)" –

+0

어떤 개체가 있습니까? –

+0

<% = image_tag "# {@ bg_image}"%> 일종의 효과가 있지만 이미지가 정의되지 않았습니다. –