我想知道如何将自定义配置变量添加到Rails应用程序,以及如何在控制器中访问它们?

其次,我计划在我的应用程序中有S3支持上传,如果我想添加一个具有S3访问权限的yaml文件,秘密密钥,我如何在我的Rails应用程序中初始化它,以及如何访问我在配置文件中定义的值。

现在,元类是什么已经很清楚了,有一个相关的概念,我一直在使用,但不知道它的真正含义。

我想每个人都犯过一次圆括号错误,导致“对象不可调用”异常。更重要的是,使用__init__和__new__会导致想知道这个该死的__call__可以用来做什么。

你能给我一些解释吗,包括魔术方法的例子?

用户上传次数过多。我想在上传表中添加一个引用用户的列。迁移应该是什么样的?

这是我有的。我不确定我是否应该使用(1):user_id,:int或(2):user,:引用。我甚至不确定(2)是否有效。我只是想按"铁轨"的方式来。

class AddUserToUploads < ActiveRecord::Migration
  def change
    add_column :uploads, :user_id, :integer
  end
end

除了Rails 3之外的相关问题。Rails 3迁移:添加参考列?

@title和title的区别是什么?因为它们都可以是变量名。另外,我如何决定我应该使用哪种变量?带@还是不带?

我是Rails的新手,所以我目前的项目处于一个奇怪的状态。

我最先生成的东西之一是“电影”模型。然后我开始更详细地定义它,添加了一些方法,等等。

我现在意识到我应该用rails生成脚手架来连接路由、视图、控制器等。

我试图生成脚手架,但我得到了一个错误,说一个同名的迁移文件已经存在。

现在我为我的“电影”创建脚手架的最好方法是什么?(使用轨道3)

我有一个包含重复元素的Ruby数组。

array = [1,2,2,1,4,4,5,6,7,8,5,6]

我如何从这个数组中删除所有重复的元素,同时保留所有唯一的元素,而不使用for循环和迭代?

我有以下文件:

/spec/controllers/groups_controller_spec.rb

我在终端中使用什么命令来运行该规范,在什么目录中运行该命令?

我的宝石文件:

# Test ENVIRONMENT GEMS
group :development, :test do
    gem "autotest"
    gem "rspec-rails", "~> 2.4"
    gem "cucumber-rails", ">=0.3.2"
    gem "webrat", ">=0.7.2"
    gem 'factory_girl_rails'
    gem 'email_spec'
end

规范文件:

require 'spec_helper'

describe GroupsController do
  include Devise::TestHelpers

  describe "GET yourgroups" do
    it "should be successful and return 3 items" do

      Rails.logger.info 'HAIL MARRY'

      get :yourgroups, :format => :json
      response.should be_success
      body = JSON.parse(response.body)
      body.should have(3).items # @user1 has 3 permissions to 3 groups
    end
  end
end

这更像是一个“事情为什么会这样”的问题,而不是一个“我不知道怎么做”的问题。

拉关联记录的福音是使用:include因为你会得到一个连接,避免一大堆额外的查询:

Post.all(:include => :comments)

然而,当你查看日志时,没有连接发生:

Post Load (3.7ms)   SELECT * FROM "posts"
Comment Load (0.2ms)   SELECT "comments.*" FROM "comments" 
                       WHERE ("comments".post_id IN (1,2,3,4)) 
                       ORDER BY created_at asc) 

它采用了一种捷径,因为它一次拉出了所有的注释,但它仍然不是一个连接(所有文档似乎都是这么说的)。我能得到一个连接的唯一方法是使用:joins而不是:include:

Post.all(:joins => :comments)

日志显示:

Post Load (6.0ms)  SELECT "posts".* FROM "posts" 
                   INNER JOIN "comments" ON "posts".id = "comments".post_id

Am I missing something? I have an app with half a dozen associations and on one screen I display data from all of them. Seems like it would be better to have one join-ed query instead of 6 individuals. I know that performance-wise it's not always better to do a join rather than individual queries (in fact if you're going by time spent, it looks like the two individual queries above are faster than the join), but after all the docs I've been reading I'm surprised to see :include not working as advertised.

也许Rails意识到了性能问题,除非在某些情况下才会加入?

如何删除一个ActiveRecord对象?

我看了活动记录查询,它没有任何删除,我可以看到。

按id删除, 删除当前对象: 可以根据where子句进行删除吗?

我能描述我正在寻找的东西的最好方式是向您展示我迄今为止尝试过的失败代码:

case car
  when ['honda', 'acura'].include?(car)
    # code
  when 'toyota' || 'lexus'
    # code
end

我有大约4到5个不同的情况应该由大约50个不同的car值触发。有办法做到这一点的情况块或我应该尝试一个巨大的if块?