[英]passing a paperclip image from the controller to a view in rails
我有一個附加有圖像的模型,我希望通過控制器將其傳遞到視圖中。 這是我嘗試過的方式,但是不起作用:
模型:
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轉換為String”錯誤,並指向“ <%= image_tag @bg_image%>”行,並且我假設@bg_image為nil。 那我在做什么錯呢?
您可能需要評估image_tag行:
<%= eval("image_tag #{@bg_image}")
由於您沒有通過在控制器中設置@bg_image來保存任何內容,因此您可以輕松地進行操作。 :
<%= image_tag @form.background_image.url %>
這可能會使渲染速度加快一納秒,並且看起來更干凈。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.