我有一个附有图像的模型,我希望通过控制器传递到视图中。这是我自己尝试的方式,但它不起作用:
型号:
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是零。那么我在这里做错了什么?
答案 0 :(得分:1)
您可能需要评估image_tag行:
<%= eval("image_tag #{@bg_image}")
由于您没有通过在控制器中设置@bg_image来保存任何内容,因此您可以轻松完成。 :
<%= image_tag @form.background_image.url %>
这可能会使纳秒速度更快,看起来更清洁。