ruby on rails - Images#show 中的 NameError,未定义局部变量或方法 `image' for #<#<Class:0x007f2179a53d30>:0x007f2174b50238>

ruby on rails - NameError in Images#show, undefined local variable or method `image' for #<#<Class:0x007f2179a53d30>:0x007f2174b50238>

我正在尝试使用 CarrierWave 来允许用户上传图片。现在我只是想在上传后显示图像,但是在点击提交按钮后我得到了 'undefined local variable or method `image' for #<#: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(型号):

class Image < ActiveRecord::Base

  mount_uploader :image, ImageUploader
end

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 %>

show.html.erb(报错的页面):

<%= image_tag image.image_url %>

并显示 'image' 列存在于我的 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 应该可以工作,但找不到方法。

有人能帮帮我吗?

试试下面的代码

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 %>