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

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_paginateRuby .从我所能找到的,似乎是我的PostsController#index有什么问题,或者可能是以前试图安装gem而不是插件,在这种情况下,我读到我应该能够通过/config/environments.rb文件以某种方式补救.

我不认为以前的gem安装会有什么影响,因为我在安装插件之前就把旧版本的网站弄坏了.在网站的当前版本中,我展示了迁移后,该表已使用回形针列进行了更新.这是我的代码:

PostsConroller#show:

  def show
    @post = Post.find(params[:id])

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

Post型号:

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:

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

推荐答案

安装新的gems/插件后重启服务器非常重要.这应该能解决你的问题

Ruby-on-rails相关问答推荐

在VP中部署rails 7和nginx

根据表单内的 Select 字段值渲染部分内容

在bash中匹配带有空格字符的字符串

Restful Rails 编辑与更新

来自控制台的 ActionCable.server.broadcast

向现有控制器添加操作(Ruby on Rails)

使用 rails 3.1.0 和 ubuntu 安装 Nokogiri 1.5.0 时出错

使用 javascript 提交 Rails 远程表单

渲染:动作和渲染:模板之间的区别

在公共 Rails 应用程序中将敏感数据存储在哪里?

在两个 DateTime 之间迭代,步长为一小时

具有 has_many 关联的 FactoryGirl build_stubbed 策略

Rails - 如何在 f.submit 上放置确认弹出窗口?

遇到在早期版本的 Rails 中使用 attr_accessible 的情况时,Rails 4 中的禁止属性错误

保存后重定向到索引而不是显示

link_to 将参数与 url 一起发送并在目标页面上抓取它们

rbenv:没有 gemsets 生存

我怎样才能看到水豚在失败的黄瓜步骤中发现了什么?

资源和资源方法之间的区别

Rails:如何将日期时间字符串解析为特定时区