我有这种情况.
电影名称:
$ title = "La leyenda de Osaín"
Run Code Online (Sandbox Code Playgroud)
使用此编码:
$ title.encoding.name
>> UTF-8
Run Code Online (Sandbox Code Playgroud)
然后我将其保存到数据库中.
$ movie = Movie.create!(:title => title)
Run Code Online (Sandbox Code Playgroud)
然后我试着看电影.
$ Movie.find(movie.id).title.encoding.name
>> "ASCII-8BIT"
$ Movie.find(movie.id).title
>> "La leyenda de Osa\xC3\xADn"
Run Code Online (Sandbox Code Playgroud)
所有其他电影的作品不包含像í和的特殊字符û.
这是我的database.yaml文件:
development:
adapter: mysql
database: development
username: linus
password: my_password
socket: /tmp/mysql.sock
encoding: UTF8
Run Code Online (Sandbox Code Playgroud)
我在使用时获得了正确的数据forced_encoding.
$ Movie.find(movie.id).title.force_encoding("UTF-8")
>> "La leyenda de Osaín"
Run Code Online (Sandbox Code Playgroud)
我正在使用Rails 3.0.5.rc1和MySQL 14.14.
谁知道问题可能是什么?
我的应用程序缓存被刷新(页面,动作和片段缓存)时遇到了一些问题.
看起来(根据memcached IRC和日志文件),即使缓存未满,也会经常刷新缓存.
我正在使用:
expires_in将数据保存到缓存时,我没有使用任何选项.相反,我每天晚上都会使用扫地机手动刷新缓存.
任何人都知道为什么会这样?
3-4个月后,当我回到RoR的另一个项目时,使用Mongoid.我被困在这个奇怪的问题上.正如我一直关注Mongoid记录的那样.如此生成mongoid.yml,删除database.yml.并改变了
#require 'rails/all'
require "action_controller/railtie"
require "action_mailer/railtie"
require "active_resource/railtie"
require "rails/test_unit/railtie"
require "sprockets/railtie" # Uncomment this line for Rails 3.1+
Run Code Online (Sandbox Code Playgroud)
在config/application.rb.
我仍然面临着这个问题.用,启动服务器.
configuration.rb:85:in `method_missing': undefined method `active_record' for #<Rails::Application::Configuration:0x9441fd4> (NoMethodError)
Run Code Online (Sandbox Code Playgroud)
哎呀,我不得不注释掉
config.active_record.mass_assignment_sanitizer = :strict
,并
config.active_record.auto_explain_threshold_in_seconds = 0.5
在config/environments/development.rb.
我使用Rails 3.0.2得到了这个奇怪的错误.
ActionView::Template::Error (undefined method `parent' for nil:NilClass):
app/controllers/channels_controller.rb:19:in `index'
Run Code Online (Sandbox Code Playgroud)
这是控制器,而行19是respond_with(@channels)块.
我从哪里开始搜索错误?
class ChannelsController < ApplicationController
before_filter :set_default_client
respond_to :html, :xml
def index
if params[:cache_set]
@channels = Channel.active.find_all_by_id(params[:cache_set])
else
@channels = Channel.active.find_all_by_id(cookies[:channels].split(','))
end
respond_with(@channels)
end
end
Run Code Online (Sandbox Code Playgroud)
这是完整的错误:
ActionView::Template::Error (undefined method `parent' for nil:NilClass):
app/controllers/channels_controller.rb:19:in `index'
Rendered /Users/linus/.rvm/gems/ruby-1.8.7-p330/gems/actionpack-3.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.3ms)
Rendered /Users/linus/.rvm/gems/ruby-1.8.7-p330/gems/actionpack-3.0.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (19.8ms)
Rendered /Users/linus/.rvm/gems/ruby-1.8.7-p330/gems/actionpack-3.0.2/lib/action_dispatch/middleware/templates/rescues/template_error.erb within rescues/layout (28.6ms)
Run Code Online (Sandbox Code Playgroud)
我正在使用Ruby 1.8.7和Rails 3.0.2.我也是,为了以防万一,尝试了Rails 3.0.7和3.0.0.
是否有可能检查文件是否存在,而不实际下载?
我有这个大(~ 40mb)的文件,例如:
http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm
这与ruby 并不严格相关,但如果发件人可以设置内容长度则会很好.
RestClient.get "http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm",
headers: {"Content-Length" => 100}
Run Code Online (Sandbox Code Playgroud) 当谷歌机器人试图访问我的一个控制器时,我收到此错误消息.
ActionView::MissingTemplate: Missing template channels/show, application/show with {:locale=>[:"sv-SE", :en], :formats=>["*/*;q=0.9"], :handlers=>[:erb, :builder, :haml]}. Searched in: * "/opt/www/app/releases/20120228181534/app/views" * "/opt/www/app/shared/bundle/ruby/1.9.1/gems/kaminari-0.13.0/app/views"
Run Code Online (Sandbox Code Playgroud)
问题是我无法重现它.错误发生在上周的121次(根据airbrake).
这是回溯.
第18行是我的应用程序中唯一提到的行,它是super此代码的一部分
def render(options = {}, extra_options = {}, &block)
if request.headers['X-PJAX'] or params[:no_layout] == "true" or params[:_pjax]
options[:layout] = false
end
super(options, extra_options, &block)
end
Run Code Online (Sandbox Code Playgroud)
控制器方法channels#show如下所示
def show
@channel = # ...
@today = # ...
@yesterday = # ...
@tomorrow = # ...
end
Run Code Online (Sandbox Code Playgroud)
访问引发谷歌机器人错误的网址不会给我带来错误.
唯一失败的网址是包含特殊字符的网址{"action"=>"show", "id"=>"25-jönköping", "controller"=>"channels"}.该ORIGINAL_FULLPATH …
我在运行我的应用程序时遇到了一些问题.
我希望能够将活动管理员指向http://admin.lvh.me:3000/ 我尝试使用此代码,但它只显示索引页面.
# config/routes.rb
scope :admin, constraints: { subdomain: "admin" } do
ActiveAdmin.routes(self)
devise_for :admin_users, ActiveAdmin::Devise.config.merge(path: "/")
end
# config/initializers/active_admin.rb
config.default_namespace = :admin
Run Code Online (Sandbox Code Playgroud)
唯一有效的网址是http://admin.lvh.me:3000/admin
有可能避免/admin吗?
我的申请中的每个考试都有很多部分.我想使用此代码为每个考试添加一个部件按钮.
# app/admin/exams.rb
ActiveAdmin.register Exam do
# ...
index do
column :actions do |exam|
link_to "Part", admin_exam_parts_path(exam)
end
default_actions
end
# ...
end
Run Code Online (Sandbox Code Playgroud)
问题是admin_exam_parts_path不存在.
# config/routes.rb
scope :admin, constraints: { subdomain: "admin" } do
resources :exams do
resources :parts
end
ActiveAdmin.routes(self)
devise_for :admin_users, ActiveAdmin::Devise.config.merge(path: "/")
end …Run Code Online (Sandbox Code Playgroud) 我正在尝试升级到rails 4 beta 1,但我有点问题.
简而言之,这就是我的应用程序控制器的样子.
class ApplicationController < ApplicationController
caches_action :method
end
Run Code Online (Sandbox Code Playgroud)
caches_action 在Rails 4中移出它自己的宝石,所以包括gem应该解决问题.
gem "actionpack-action_caching", github: "rails/actionpack-action_caching"
Run Code Online (Sandbox Code Playgroud)
但是,当我运行我的请求规范或在浏览器中访问应用程序时,我收到此错误.
app/controllers/application_controller.rb:3:in `<class:ApplicationController>': undefined method `caches_action' for ApplicationController:Class (NoMethodError)
Run Code Online (Sandbox Code Playgroud)
这是为什么?
我最近尝试安装rails 4.1.0.beta1,但rails s导致以下错误.
[RVM]/gems/ruby-2.0.0-p247/gems/activesupport-4.1.0.beta1/lib/active_support/core_ext/module/aliasing.rb:32:in `alias_method': undefined method `graft' for class `ActiveRecord::Associations::JoinDependency' (NameError)
[RVM]/gems/ruby-2.0.0-p247/gems/activesupport-4.1.0.beta1/lib/active_support/core_ext/module/aliasing.rb:32:in `alias_method_chain'
[RVM]/gems/ruby-2.0.0-p247/gems/polyamorous-0.6.4/lib/polyamorous/join_dependency.rb:7:in `block in included'
[RVM]/gems/ruby-2.0.0-p247/gems/polyamorous-0.6.4/lib/polyamorous/join_dependency.rb:5:in `class_eval'
[RVM]/gems/ruby-2.0.0-p247/gems/polyamorous-0.6.4/lib/polyamorous/join_dependency.rb:5:in `included'
[RVM]/gems/ruby-2.0.0-p247/gems/polyamorous-0.6.4/lib/polyamorous.rb:20:in `include'
[RVM]/gems/ruby-2.0.0-p247/gems/polyamorous-0.6.4/lib/polyamorous.rb:20:in `<top (required)>'
[RVM]/gems/ruby-2.0.0-p247/gems/activesupport-4.1.0.beta1/lib/active_support/dependencies.rb:247:in `require'
[RVM]/gems/ruby-2.0.0-p247/gems/activesupport-4.1.0.beta1/lib/active_support/dependencies.rb:247:in `block in require'
[RVM]/gems/ruby-2.0.0-p247/gems/activesupport-4.1.0.beta1/lib/active_support/dependencies.rb:232:in `load_dependency'
[RVM]/gems/ruby-2.0.0-p247/gems/activesupport-4.1.0.beta1/lib/active_support/dependencies.rb:247:in `require'
[RVM]/gems/ruby-2.0.0-p247/gems/ransack-1.1.0/lib/ransack/adapters/active_record/3.1/context.rb:3:in `<top (required)>'
[RVM]/gems/ruby-2.0.0-p247/gems/activesupport-4.1.0.beta1/lib/active_support/dependencies.rb:247:in `require'
[RVM]/gems/ruby-2.0.0-p247/gems/activesupport-4.1.0.beta1/lib/active_support/dependencies.rb:247:in `block in require'
[RVM]/gems/ruby-2.0.0-p247/gems/activesupport-4.1.0.beta1/lib/active_support/dependencies.rb:232:in `load_dependency'
[RVM]/gems/ruby-2.0.0-p247/gems/activesupport-4.1.0.beta1/lib/active_support/dependencies.rb:247:in `require'
[RVM]/gems/ruby-2.0.0-p247/gems/ransack-1.1.0/lib/ransack/adapters/active_record/3.2/context.rb:2:in `<top (required)>'
[RVM]/gems/ruby-2.0.0-p247/gems/activesupport-4.1.0.beta1/lib/active_support/dependencies.rb:247:in `require'
[RVM]/gems/ruby-2.0.0-p247/gems/activesupport-4.1.0.beta1/lib/active_support/dependencies.rb:247:in `block in require'
[RVM]/gems/ruby-2.0.0-p247/gems/activesupport-4.1.0.beta1/lib/active_support/dependencies.rb:232:in `load_dependency'
[RVM]/gems/ruby-2.0.0-p247/gems/activesupport-4.1.0.beta1/lib/active_support/dependencies.rb:247:in `require'
[RVM]/gems/ruby-2.0.0-p247/gems/ransack-1.1.0/lib/ransack/adapters/active_record/context.rb:2:in `<top (required)>'
[RVM]/gems/ruby-2.0.0-p247/gems/activesupport-4.1.0.beta1/lib/active_support/dependencies.rb:247:in `require'
[RVM]/gems/ruby-2.0.0-p247/gems/activesupport-4.1.0.beta1/lib/active_support/dependencies.rb:247:in `block in require'
[RVM]/gems/ruby-2.0.0-p247/gems/activesupport-4.1.0.beta1/lib/active_support/dependencies.rb:232:in `load_dependency'
[RVM]/gems/ruby-2.0.0-p247/gems/activesupport-4.1.0.beta1/lib/active_support/dependencies.rb:247:in `require'
[RVM]/gems/ruby-2.0.0-p247/gems/ransack-1.1.0/lib/ransack/adapters/active_record.rb:12:in …Run Code Online (Sandbox Code Playgroud) 我有这个文件要测试。
app/workers/station/http.rb
module Worker
module Station
class HTTP
# ...
end
end
end
Run Code Online (Sandbox Code Playgroud)
这是我的规格文件。
spec/workers/station/http_spec.rb
describe Worker::Station::HTTP do
it "should do something" do
end
end
Run Code Online (Sandbox Code Playgroud)
现在的问题是,使用rspec运行spec文件时出现以下错误。
rspec spec/workers/station/http_spec.rb
/Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/activesupport-4.0.4/lib/active_support/dependencies.rb:464:in `load_missing_constant': Unable to autoload constant Station::HTTP, expected app/workers/station/http.rb to define it (LoadError)
from /Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/activesupport-4.0.4/lib/active_support/dependencies.rb:184:in `const_missing'
from spec/workers/station/http_spec.rb:3:in `<top (required)>'
from /Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/activesupport-4.0.4/lib/active_support/dependencies.rb:223:in `load'
from /Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/activesupport-4.0.4/lib/active_support/dependencies.rb:223:in `block in load'
from /Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/activesupport-4.0.4/lib/active_support/dependencies.rb:214:in `load_dependency'
from /Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/activesupport-4.0.4/lib/active_support/dependencies.rb:223:in `load'
from /Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/rspec-core-2.14.8/lib/rspec/core/configuration.rb:896:in `block in load_spec_files'
from /Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/rspec-core-2.14.8/lib/rspec/core/configuration.rb:896:in `each'
from /Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/rspec-core-2.14.8/lib/rspec/core/configuration.rb:896:in `load_spec_files'
from /Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/rspec-core-2.14.8/lib/rspec/core/command_line.rb:22:in `run'
from /Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/rspec-core-2.14.8/lib/rspec/core/runner.rb:80:in `run'
from …Run Code Online (Sandbox Code Playgroud) ruby ×4
activeadmin ×1
activerecord ×1
devise ×1
memcached ×1
mongodb ×1
mongoid ×1
mysql ×1
rspec ×1
ruby-2.0 ×1
utf8-decode ×1