2016-03-19 4 views
1

ユーザーが画像をアップロードできるように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は動作するはずですが、メソッドを見つけることができません。

誰かが私を助けることができますか?

+0

内を試してみてください!あなたは新しいインスタンスを作成しています@image = Image.new – LHH

+0

私はコントローラに@ image.saveを持っています –

+0

あなたはローカルまたはs3の文字列イメージですか? – LHH

答えて

0

は、以下のコード

class ImagesController < ApplicationController 
     def new 
     @image = Image.new 
     end 

     def create 
     @image = Image.new(image_params) ##assign image params here 
     if @image.save 
      redirect_to @image 
     end 
     end 

     def show 
     @image = Image.find_by_id(params[:id]) 
     end 


    private 
     def image_params 
     params.require(:image).permit(:image) 
     end 

    end 

show.html.erb

あなたは画像を保存している
<%= image_tag @image.image_url %> 
+0

完璧!どうもありがとう! –

関連する問題