将回形针图像从控制器传递到轨道中的视图

时间:2012-07-27 22:49:19

标签: ruby-on-rails image paperclip instance-variables

我有一个附有图像的模型,我希望通过控制器传递到视图中。这是我自己尝试的方式,但它不起作用:

型号:

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转换为字符串”错误并指向“&lt;%= image_tag @bg_image%&gt;”我认为@bg_image是零。那么我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

您可能需要评估image_tag行:

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

由于您没有通过在控制器中设置@bg_image来保存任何内容,因此您可以轻松完成。 :

<%= image_tag @form.background_image.url %>

这可能会使纳秒速度更快,看起来更清洁。