用于#<post:0x007f6018a697b0>的未定义方法`image'

时间:2018-04-13 11:25:00

标签: ruby-on-rails ruby ruby-on-rails-4

我在我的项目中收到此错误:

  

的未定义方法`image'
this is my code : 
= simple_form_for @post do |f|
  = f.input :image
  = f.input :caption
  = f.button :submit

这是我的模型post.rb

class Post < ApplicationRecord
    class Post < ActiveRecord::Base
        validates :image, presence: true

        has_attached_file :image, styles: { :medium => "640x" }
        validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/
    end
end

这是我的控制器post_controller.rb

class PostsController < ApplicationController
    def index
    end

    def new
        @post = Post.new
    end
end

1 个答案:

答案 0 :(得分:1)

为什么要使用class Post < ActiveRecord::Base

新生成的应用程序app/models/application_record.rb 默认存在。新生成的模型必须从ApplicationRecord继承,但仅限于它存在。

因此,如果您使用class Post < ActiveRecord::Base,或者如果您需要,则删除不需要的此类rails >= 5,然后删除第一个。

请参阅此参考资料Creating Active Record Models

  

未定义的方法`image&#39;

对于找不到你的模型的image属性,请确保添加了该属性,如果还没有,那么写一个这样的命令

rails g migration AddImageToPosts image:string

然后运行rake db:migrate