RoR未定义方法' attr_accessor'

时间:2015-09-16 20:39:05

标签: ruby-on-rails imagemagick paperclip erb

我正在构建一个允许我发布图片的博客,当有新图片出现时,我收到错误说"要求attr_accessor为' image_file_name'&#34 ;。所以我把我的" attr_accessor:image"在那里我得到一个"未定义的方法错误' attr_accessor'"。 https://github.com/BBaughn1/savagelysaving< - 如果你需要它的github

def create
    @post = Post.new(post_params)
    if @post.save
      redirect_to @post
    else
      render 'new'
    end
  end

这是在错误之前,

def create
    attr_accessor :image
    @post = Post.new(post_params)
    if @post.save
      redirect_to @post
    else
      render 'new'
    end
  end

这是在错误之后。 并且,我之前得到了这个错误,但修复了它:

def update
    @post = Post.find(params[:id])
    attr_accessor :image
    if @post.update(params[:post].permit(:title, :body, :image))
      redirect_to @post
    else
      render 'edit'
    end
  end

put" attr_accessor:image"在" @post = Post.new(post_params)"之前会给我同样的错误,说我需要" attr_accessor"

1 个答案:

答案 0 :(得分:1)

看起来这只是命名不匹配。 Your schema显示您具有avatar_file_name,avatar_content_type,avatar_file_size和avatar_updated_at属性。但在your model中,您有has_attached_file :image。这两项should match up。听起来你可能想要has_attached_file :avatar。您将需要替换"图像"的其他相关事件。用"头像"在你的视图和控制器中。您还应该从模型中删除attr_accessor :image。您的错误表示数据库中不存在您已定义的结构所需的字段。