首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么在安装PaperClip时出现"undefined method for `has_attached_file`?“

为什么在安装PaperClip时出现"undefined method for `has_attached_file`?“
EN

Stack Overflow用户
提问于 2010-04-18 11:53:44
回答 5查看 35K关注 0票数 53

我刚刚安装了回形针的插件,我收到了以下错误消息,但我不确定为什么:

代码语言:javascript
复制
NoMethodError (undefined method `has_attached_file' for #<Class:0x10338acd0>):
  /Users/bgadoci/.gem/ruby/1.8/gems/will_paginate-2.3.12/lib/will_paginate/finder.rb:170:in `method_missing'
  app/models/post.rb:2
  app/controllers/posts_controller.rb:50:in `show'

它引用的是will_paginate gem。从我所能找到的,似乎是我的PostsController#index出了什么问题,或者可能是之前试图安装gem而不是插件,在这种情况下,我应该能够通过/config/environments.rb文件以某种方式进行补救。

我认为之前的gem安装并不重要,因为我在安装插件之前销毁的旧版本的网站上进行了安装。在站点的当前版本中,我显示了在迁移之后,该表已使用Paperclip列进行了更新。下面是我的代码:

PostsConroller#show

代码语言:javascript
复制
  def show
    @post = Post.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @post }
    end
  end

Post型号:

代码语言:javascript
复制
class Post < ActiveRecord::Base

  has_attached_file :photo
  validates_presence_of :body, :title
  has_many :comments, :dependent => :destroy
  has_many :tags, :dependent => :destroy
  has_many :votes, :dependent => :destroy
  belongs_to :user
  after_create :self_vote
      def self_vote
       # I am assuming you have a user_id field in `posts` and `votes` table.
       self.votes.create(:user => self.user)
      end

  cattr_reader :per_page 
    @@per_page = 10

end

/views/posts/new.html.erb

代码语言:javascript
复制
<h1>New post</h1>
<%= link_to 'Back', posts_path %>
<% form_for(@post, :html => { :multipart => true}) do |f| %>
  <%= f.error_messages %>

  <p>
    <%= f.label :title %><br />
    <%= f.text_field :title %>
  </p>
  <p>
    <%= f.label :body %><br />
    <%= f.text_area :body %>
  </p>
  <p>
    <%= f.file_field :photo %>
  </p>

  <p>
    <%= f.submit 'Create' %>
  </p>
<% end %>
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-07-31 00:30:51

在安装新的gem/plugin之后重新启动服务器是非常重要的。这应该可以解决你的问题

票数 183
EN

Stack Overflow用户

发布于 2010-04-18 13:14:47

我建议安装回形针gem。然后,您只需将config.gem 'paperclip'添加到您的environment.rb并运行sudo rake gems:install

票数 8
EN

Stack Overflow用户

发布于 2015-09-12 20:02:34

在配置/initializers/Papclip.rb中创建文件paperclip.rb

添加以下行并重新启动服务器

需要“回形针/栏杆”

Paperclip::Railtie.insert

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2661062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档