标签: ruby

如何使用RVM并创建全局可用的宝石?

我正在运行Mac OSX 10.6.4并安装了RVM.它到目前为止一直很棒,我真的很喜欢它让我在同一台机器上管理多个版本的rails和ruby而不会头疼的方式!

但是,我不想为每个设置安装某些宝石(例如乘客).有没有办法在宝石集之间分享宝石?我有一个1.8.7@rails2.3.8和1.9.2@rails3,我可以安装一下诸如passenger,mysql和capistrano之类的宝石,并且可以与所有版本一起使用吗?

ruby macos rubygems ruby-on-rails

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

59
推荐指数
4
解决办法
6万
查看次数

ruby - 无法修改冻结的字符串(TypeError)

拿到

...'[] =':无法修改冻结的字符串(TypeError)

当试图修改我认为是ARGV [0]的副本时.

每个人的结果相同

arg = ARGV[ 0 ]
arg_cloned = ARGV[ 0 ].clone
arg_to_s = ARGV[ 0 ].to_s

arg[ 'x' ] = 'y'
arg_cloned[ 'x' ] = 'y'
arg_to_s[ 'x' ] = 'y'
Run Code Online (Sandbox Code Playgroud)

ruby

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

ruby超级关键字

据我所知,super关键字调用一个方法,该方法与当前类的超类中的当前方法具有相同的名称.在autoload方法下面,有一个电话super.我想知道在哪个超类中我会找到一个具有相同名称的方法或者super这里要做的调用

module ActiveSupport
  module Autoload
    ...      
    def autoload(const_name, path = @@at_path)
      full = [self.name, @@under_path, const_name.to_s, path].compact.join("::")
      location = path || Inflector.underscore(full)

      if @@eager_autoload
        @@autoloads[const_name] = location
      end
      super const_name, location
    end
   .... 
  end
end

module ActiveRecord
  extend ActiveSupport::Autoload
  ...
  autoload :TestCase
  autoload :TestFixtures, 'active_record/fixtures'
end
Run Code Online (Sandbox Code Playgroud)

此代码来自rails master分支.非常感谢.

ruby activerecord ruby-on-rails

58
推荐指数
5
解决办法
7万
查看次数

Rails ActiveRecord:查找当前用户以外的所有用户

我觉得这应该很简单,但我的大脑正在短路.如果我有表示当前用户的一个对象,并希望查询除了当前用户的所有用户,我怎么能做到这一点,考虑到当前用户有时会nil

这就是我现在正在做的事情:

def index
  @users = User.all
  @users.delete current_user
end
Run Code Online (Sandbox Code Playgroud)

我不喜欢的是我正在对查询结果进行后处理.除了感觉有点不对外,如果我将查询转换为运行,我认为这不会很好will_paginate.有关如何使用查询执行此操作的任何建议?谢谢.

ruby activerecord ruby-on-rails

58
推荐指数
5
解决办法
5万
查看次数

如何在Ruby中获取堆栈跟踪对象?

我需要在Ruby中获取堆栈跟踪对象; 不要打印它,只是为了让它做一些录音和倾倒以供以后分析.那可能吗?怎么样?

ruby stack stack-trace

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

如何为f.select表单字段设置空白值

我使用以下内容允许我的用户在他们的个人资料中选择他们的性别.

<%= f.select (:sex, %w{ Male Female }) %>
Run Code Online (Sandbox Code Playgroud)

如果没有将任何内容传递给user.sex列,我将如何创建列表默认的空白值?我只是将男性或女性作为一个字符串传递.

目的是我想要一个空白值,所以验证可以确保他们知道他们必须选择它.

ruby select ruby-on-rails

58
推荐指数
2
解决办法
5万
查看次数

:如rails routes.rb

config/routes.rb,我尝试了两个:

root :to => 'things#index', :as => 'things'
Run Code Online (Sandbox Code Playgroud)

root :to => 'things#index'
Run Code Online (Sandbox Code Playgroud)

当我击中时http://localhost:3000/,两种方法都有效,似乎没有什么不同.

:as用于什么选项?

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

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

如何在gemspec中指定最小的Ruby版本?

我正在为一个新版本的gem编写gemspec,现在需要Ruby 1.9.以前版本的gem可以使用Ruby 1.8,但现在需要1.9.有没有办法导致这个版本的gem的gem安装失败,并向尝试在Ruby 1.8上安装它的用户发出警告?

ruby

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

STI,一个控制器

我是铁杆的新手,我很难解决这个设计问题,这可能很容易解决,但我无处可去:我有两种不同的广告:亮点和便宜货.它们都具有相同的属性:标题,描述和一个图像(使用回形针).它们也有相同的动作应用于它们:索引,新建,编辑,创建,更新和销毁.

我设置了一个像这样的STI:

广告模型:ad.rb

class Ad < ActiveRecord::Base
end
Run Code Online (Sandbox Code Playgroud)

讨价还价模型:bargain.rb

class Bargain < Ad
end
Run Code Online (Sandbox Code Playgroud)

突出显示模型:highlight.rb

class Highlight < Ad
end
Run Code Online (Sandbox Code Playgroud)

问题是我想只有一个控制器(AdsController)执行我在讨价还价或亮点上所说的操作,具体取决于URL,比如www.foo.com/bargains [/ ...]或www.foo.com /强调[/...].

例如:

  • 获取www.foo.com/highlights =>所有重点广告的列表.
  • 获取www.foo.com/highlights/new =>表格以创造新的亮点......

我怎样才能做到这一点?

谢谢!

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

58
推荐指数
3
解决办法
2万
查看次数