小编bas*_*eck的帖子

ActionController :: Base的未定义方法`page_cache_extension':Class

出于某种原因,当我运行我的应用程序时,我得到了"ActionController :: Base:Class"的"未定义的方法`page_cache_extension"错误.

奇怪的是,它似乎只是在我启动机器并启动服务器后的第一次启动时发生的.如果我刷新页面 - 它加载正常.如果我重新启动我的服务器 - 它也可以正常工作.

我在windows7上使用rails 3.0.9和ruby 1.9.2并且我认为它在我升级到3.0.7后开始发生.至少,3.0.3我没有得到这个.

这是跟踪:

[2011-06-28 15:16:39] INFO  WEBrick 1.3.1
[2011-06-28 15:16:39] INFO  ruby 1.9.2 (2011-02-18) [i386-mingw32]
[2011-06-28 15:16:39] INFO  WEBrick::HTTPServer#start: pid=5292 port=3000
[2011-06-28 15:27:18] ERROR NoMethodError: undefined method `page_cache_extension' for ActionController::Base:Class
    D:/dev/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.9/lib/action_dispatch/middleware/static.rb:21:in `call'
    D:/dev/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.9/lib/rails/application.rb:168:in `call'
    D:/dev/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.9/lib/rails/application.rb:77:in `method_missing'
    D:/dev/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.9/lib/rails/rack/log_tailer.rb:14:in `call'
    D:/dev/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.3/lib/rack/content_length.rb:13:in `call'
    D:/dev/Ruby192/lib/ruby/gems/1.9.1/gems/rack-1.2.3/lib/rack/handler/webrick.rb:52:in `service'
    D:/dev/Ruby192/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'
    D:/dev/Ruby192/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'
    D:/dev/Ruby192/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'
Started GET "/" for 127.0.0.1 at 2011-06-28 15:27:21 +0400
  Processing by GamesController#index as HTML
  Category Load (2.0ms)  SELECT "categories".* FROM "categories" …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-3

28
推荐指数
3
解决办法
1万
查看次数

ImageMagick - "未找到CORE_RL_magick_.dll"或如何使用ruby 1.9.2在Windows上安装RMagick

我正在开发一款Rail3应用程序.经过几个小时的努力,最后在win7x64/ruby​​ 1.9.2上安装了rmagick 2.13.1 gem而没有错误,我遇到了另一个错误.是的,我听说过在windows中使用rails可能会很痛苦......

我使用carrierwave处理图像并将其上传到AWS S3.处理看起来像

class IconUploader < CarrierWave::Uploader::Base

require 'rmagick'
include CarrierWave::RMagick
... 
process :resize_to_fit => [100, 100]
process :convert => :png
...
Run Code Online (Sandbox Code Playgroud)

当我在我的开发机器上触发文件上传时,它会抛出一个Windows弹出窗口,说

找不到CORE_RL_magick_.dll

谷歌对此并不是很有帮助.

我将PATH变量设置为C:/ ruby​​192/ImageMagick - 我已经安装了ImageMagick.这个文件夹有几个CORE_RL dll,包括magick.DLL本身不会丢失!

irb > require 'rmagick'返回true并convert -version输出:

Version: ImageMagick 6.6.9-6 2011-04-14 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC
Features: OpenMP
Run Code Online (Sandbox Code Playgroud)

所以我有几个问题.

  1. 我该如何解决这个问题?
  2. elseif 我没有,是否还有Windows和heroku都支持的其他宝石和/或图形库?
  3. else 也许有一种方法可以配置carrierwave,而不是在开发环境中处理图像

到目前为止,我已经尝试了ImageMagick v 6.6.9 32bit dll,它给出了CORE_RL dll错误,64位静态,没有用于编译rmagick gem的dev头,以及64位动态,这给了我很多undefined reference错误.宝石编译,每个测试,除了第一个:

checking for snprintf() in assert.h,ctype.h,stdio.h,stdlib.h,math.h,time.h,stdint.h,sys/types.h,wand/MagickWand.h... …
Run Code Online (Sandbox Code Playgroud)

ruby windows ruby-on-rails rmagick imagemagick

12
推荐指数
1
解决办法
2万
查看次数

如何使用carrierwave将文件发送给用户?

这是我将旧文件发送到浏览器的旧代码:

def show
  send_file File.join(Rails.root, 'tmp', 'price.xls')
end
Run Code Online (Sandbox Code Playgroud)

但是最近我发现tmp文件夹不能用作Heroku上的持久存储,所以我决定将文件移动到AWS S3.

这就是我到目前为止所得到的:

def show
  uploader = PriceUploader.new
  uploader.retrieve_from_store!('price.xls')
end
Run Code Online (Sandbox Code Playgroud)

现在,如何将文件发送到浏览器?

UPD

我当然没有安装上传器

ruby-on-rails ruby-on-rails-3 carrierwave

8
推荐指数
1
解决办法
5183
查看次数

有没有办法在heroku上使用sendgrid调试邮件程序?或者检查邮件是否实际发送?

我正在尝试在rails 3.0.10项目上实现"联系我们"表单.在RailsGuides之后,我创建了一个邮件程序.

class QuestionMailer < ActionMailer::Base
  default :to => "%mail@mydomain" #gmail for domains

  def ask(message)
    @content = message.content

    unless message.name.nil? or message.name.empty?
      from = "#{message.name} <#{message.email}>"
    else
      from = message.email
    end

    mail(:subject => message.subject, :from => from)
  end
end
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我有这些线:

if @question.valid?
  QuestionMailer.ask(@question).deliver
  redirect_to root_url, :notice => "????????? ??????????"
else
Run Code Online (Sandbox Code Playgroud)

Production.rb:

config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { :host => '%mydomain%' }

ActionMailer::Base.smtp_settings = {
  :address        => "smtp.sendgrid.net",
  :port           => "25",
  :authentication => :plain,
  :user_name      => ENV['SENDGRID_USERNAME'],
  :password       => ENV['SENDGRID_PASSWORD'],
  :domain …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails actionmailer heroku sendgrid ruby-on-rails-3

7
推荐指数
1
解决办法
2706
查看次数

在自身内部引用哈希项

我有一个很短的问题.是否可以使用以下内容初始化哈希:

row = {
    :title => "row title",
    :slug => row[:title].paremeterize
}
Run Code Online (Sandbox Code Playgroud)

换句话说,我可以以某种方式引用自身内部的单元化哈希,或者我必须这样做:

row = {
    :title => "row title"
}
row[:slug] = row[:title].paremeterize
Run Code Online (Sandbox Code Playgroud)

感谢您的评论.当然,这段代码不起作用.我问是否有类似的方法,可能有不同的语法.Ruby对我来说充满了惊喜:)

ruby ruby-1.9 ruby-1.9.2

4
推荐指数
1
解决办法
157
查看次数

如何在保存记录之前清理数据(删除html标签)?

我想知道Rails3是否有一个简单的方法从输入数据中删除html标签,然后将其保存在数据库中.

现在,HAML在视图级别对数据进行了清理.JS没有得到执行和东西,但我想完全删除可能有害的数据.

基本上,我的问题是:是否有一个帮助我可以在before_save过滤器中使用来安全地剥离标签?

ruby-on-rails ruby-on-rails-3

4
推荐指数
2
解决办法
9736
查看次数

Paperclip - 未定义的方法'icon_file_name'

我刚刚安装了Paperclip并尝试将图标附加到我的模型上.

has_attached_file :icon, 
                  :styles => { :normal => "100x100>", :format => 'png' },
                  :storage => :s3, 
                  :s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
                  :url => "/icon/:slug.:extension"
                  :path => "icon/:slug.:extension"
Run Code Online (Sandbox Code Playgroud)

s3.yml包含我的桶名和两个键.

slug interpolation在config/initializers/paperclip.rb中定义为

Paperclip.interpolates('slug') do |attachment, style|
    attachment.instance.cached_slug
end
Run Code Online (Sandbox Code Playgroud)

当我调用game.icon.url时,我收到此错误:

undefined method `icon_file_name' for #<Game:0x4000f50>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

我在Windows 7 x64上运行rails 3.0.4和ruby 1.9.2,如果它有任何区别的话.

attachment amazon-s3 paperclip ruby-on-rails-3

2
推荐指数
1
解决办法
5205
查看次数

simple_form不显示一个特定表单的验证错误

这是我的表格:

= simple_form_for [@post, @comment] do |f| 
  = f.input :text, :label => false
  = f.button :submit
Run Code Online (Sandbox Code Playgroud)

注释嵌套在帖子资源中.评论验证:validates :text, :length => { :minimum => 5 }

评论控制器:

def create
  @post = Post.find params[:game_id]
  comment = @post.comments.build :user_id => current_user, :text => params[:comment][:text]

  comment.save
  redirect_to @post
end
Run Code Online (Sandbox Code Playgroud)

表单本身工作正常.如果我输入超过5个字符,则会创建注释.但如果它更少,我只是被重定向到posts#show并且表单中没有验证错误(我已经检查了源代码).

我也尝试填写设计注册表,如果失败,我可以看到错误.

我猜问题是由重定向引起的.但无论如何,我不知道如何解决它.

ruby-on-rails ruby-on-rails-3 simple-form

1
推荐指数
1
解决办法
3544
查看次数