小编Sim*_*tti的帖子

由谷歌机器人(或冒充谷歌机器人的东西)引起的Rails 3上的奇怪例外

昨晚我在我的网站上遇到了一个异常问题:代理商:googlebot.

HomeController# (ActionView::MissingTemplate) "Missing template home/index with {:formats=>[:\"\\\"*/*\\\"\"], :locale=>[:en, :en], :handlers=>[:haml, :rjs, :rhtml, :builder, :rxml, :erb]} in view paths \"/disk1/home/slugs/302902_9453ada_84cd/mnt/app/view
Run Code Online (Sandbox Code Playgroud)

我不明白这意味着什么.似乎奇怪的是格式.有人经历过类似的事吗

谢谢.

ruby-on-rails

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

ruby-openid:执行发现时未设置@socket

我与omniauth/openid有点混乱.

在尝试进行身份验证时,我在日志中发现了这一点:

OpenID::FetchingError: Error fetching https://www.google.com/accounts/o8/.well-known/host-meta?hd=profiles.google.com%2Fmy_username: undefined method `io' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

重要的是undefined method io' for nil:NilClass来自openid/fetchers.rb,在下面的代码片段中:

module Net
class HTTP
def post_connection_check(hostname)
  check_common_name = true
  cert = @socket.io.peer_cert
  cert.extensions.each { |ext|
    next if ext.oid != "subjectAltName"
    ext.value.split(/,\s+/).each{ |general_name|
      if /\ADNS:(.*)/ =~ general_name
        check_common_name = false
...
Run Code Online (Sandbox Code Playgroud)

该错误是由@socket.io.peer_cert@socket未定义生成的.

你们有没有遇到过这个?不太确定原因是什么.

我正在运行的版本:

  • ruby 1.9.3dev(2010-08-17 trunk 29020)[x86_64-darwin10.4.0]
  • ruby-openid(2.1.8)
  • ruby-openid-apps-discovery(1.2.0)
  • omn​​iauth 0.2.0

ruby ruby-openid omniauth net-http

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

在Rails 3中处理多步骤"新"操作的RESTful方法

我正在构建一个应用程序,需要一个两步过程来为其中一个模型创建一个对象.

我考虑过......

创建自定义"新"操作的自定义路由

要么

对两个步骤使用相同的"新"操作,但基于参数渲染正确的视图

处理这个问题的最佳方法是什么?

ruby-on-rails

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

rvmrc文件无法正常工作

我已经创建了一个名为gemset rails2ruby192,我.rvmrc在根文件目录中添加了以下代码,但它没有加载gemset.

ruby-1.9.2-p180@rails2ruby192 
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails rvm ruby-on-rails-2 rvmrc

5
推荐指数
3
解决办法
5057
查看次数

Git:父母提交比后代更年轻?

我正在浏览http://arago-project.org/git/projects/linux-omap3.git repo并遇到了一个奇怪的约会事件,基本上说父母提交的年龄比孩子年轻一岁.

这怎么可能?

user@ubuntu1004:/f/linux-omap3$ git log -2 --parents  4b8db3b
commit 4b8db3b368f5601717e3ffee0051628ba33172d3 3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5
Author: Kevin Hilman <khilman@deeprootsystems.com>
Date:   Fri Aug 20 11:19:52 2010 -0700

    OMAP: bus-level PM: enable use of runtime PM API for suspend/resume

    [...skipped...]

    Cc: Rajendra Nayak <rnayak@ti.com>
    Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>

commit 3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5 65f42886e24be2197b1263f138eabf40c6774d00
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Jan 4 16:50:19 2011 -0800

    Linux 2.6.37
Run Code Online (Sandbox Code Playgroud)

git

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

如果对象包含值,则为Ruby Count Array对象

我有一个数组:

array = ['Footballs','Baseball','football','Soccer']
Run Code Online (Sandbox Code Playgroud)

我需要计算看到足球或棒球的次数,无论情况和复数.

这是我试图做的,但没有运气:

array.count { |x| x.downcase.include? 'football' || x.downcase.include? 'baseball' }
Run Code Online (Sandbox Code Playgroud)

编写此代码的正确或更好的方法是什么?我正在寻找3作为答案.

ruby arrays count

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

如何使用带有Rack :: Builder :: map的lotus路由器

有没有办法将地图和(莲花)路由器命名空间一起使用?下面是config.ru我试图作为演示运行的示例.

require 'bundler'
Bundler.require

module Demo

  class Application

    def initialize
      @app = Rack::Builder.new do
        map '/this_works' do
          run  Proc.new {|env| [200, {"Content-Type" => "text/html"}, ["this_works"]]}
        end
        map '/api' do
          run Lotus::Router.new do
            get '/api/', to: ->(env) { [200, {}, ['Welcome to Lotus::Router!']] }
            get '/*', to: ->(env) { [200, {}, ["This is catch all: #{ env['router.params'].inspect }!"]] }
          end
        end
      end
    end

    def call(env)
      @app.call(env)
    end
  end  
end

run Demo::Application.new
Run Code Online (Sandbox Code Playgroud)

ruby hanami hanami-router

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

Rails 关于另一个模型的属性的自定义验证错误消息

我在模型中使用以下代码将链接插入到验证错误消息中:

class Bar < ActiveRecord::Base
  has_many :foos
  validate :mode_matcher

  def mode_matcher
    self.foos.each do |f|
      errors[:base] << mode_mismatch(foo) unless foo.mode == "http"
    end
  end

  def mode_mismatch(f)
    foo_path = Rails.application.routes.url_helpers.foo_path(f)
    "Foo <a href='#{foo_path}'>#{f.name}</a> has the wrong mode.".html_safe
  end
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但我知道推荐的方法是通过区域设置文件。我遇到了麻烦,因为我正在验证另一个模型的属性,所以以下内容不起作用:

en:
  activerecord:
    errors:
      models:
        bar:
          attributes:
            foo:
              mode_mismatch: "Foo %{link} has the wrong mode."
Run Code Online (Sandbox Code Playgroud)

这样做的正确方法是什么?

validation ruby-on-rails rails-i18n rails-activerecord

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

如何防止Ruby on Rails Active记录从数据库获取默认模型值?

我正在使用Firebird及其SQL引擎开发RoR应用程序,但我不明白为什么ActiveRecord(AR)不断查询数据库的默认值!

这是表DDL:

CREATE TABLE GLOBAL_SETTINGS
(
  SKEY varchar(64) NOT NULL,
  SVALUE varchar(256) NOT NULL,
  OBS blob sub_type 1,
  IS_SYSTEM "BOOLEAN" DEFAULT 1 NOT NULL,
  CREATED_AT timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,
  UPDATED_AT timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,
  CONSTRAINT PK_GLOBAL_SETTINGS_SKEY PRIMARY KEY (SKEY)
);
Run Code Online (Sandbox Code Playgroud)

这是创建此表的迁移:(create_global_settings.rb

class CreateGlobalSettings < ActiveRecord::Migration
  def up
    create_table :global_settings, :id => false do |t|
      t.string :skey, :null => false, :limit => 64
      t.string :svalue, :null  => false, :limit => 256
      t.text :obs
      t.boolean :is_system, :null  => …
Run Code Online (Sandbox Code Playgroud)

ruby firebird ruby-on-rails rails-activerecord

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

rvm gemset list和rvm list gemsets之间的区别

rvm list gemsets 显示安装rvm gemsets列表和

rvm gemset list 显示特定选定rvm gemsets的gemset列表.

这是正确的解释吗?

请帮我清除这意味着正确的解释,何时使用以及它如何有用?

感谢您的输入.

ruby rvm

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