ユーザーが画像をアップロードできるようにCarrierWaveを使用しようとしています。今すぐアップロードした後に画像を表示しようとしていますが、送信ボタンを押した後に、#<#< Class:0x007f2179a53d30>:0x007f2174b50238>の未定義のローカル変数またはメソッド `image 'が表示されます。ここでRuby on Ruby - 画像のNameError#未定義のローカル変数またはメソッドの画像を表示する#<#<クラス:0x007f2179a53d30>:0x007f2174b50238>
は私のimages_controllerです:
class ImagesController < ApplicationController
def new
@image = Image.new
end
def create
@image = Image.new
if @image.save
redirect_to @image
end
end
def show
end
end
と私のimage.rb(モデル):
new.html.erb(アップロードフォーム):
<%= form_for @image, html: { multipart: true } do |f| %>
<% if @image.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@image.errors.count, "error") %> prohibited this image from being saved:</h2>
<ul>
<% @image.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :image %><br>
<%= f.file_field :image %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
ショー.html.erb(エラーを投げるページ):
<%= image_tag image.image_url %>
そして、「画像」列が私のschema.rbに存在することを示すために:
ActiveRecord::Schema.define(version: 20160319135740) do
create_table "images", force: :cascade do |t|
t.string "image"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
正直なところ、私は問題が何であるか見当がつかない。私が読んだすべてのチュートリアルによると、image_urlは動作するはずですが、メソッドを見つけることができません。
誰かが私を助けることができますか?
内を試してみてください!あなたは新しいインスタンスを作成しています@image = Image.new – LHH
私はコントローラに@ image.saveを持っています –
あなたはローカルまたはs3の文字列イメージですか? – LHH