小编Ter*_*ber的帖子

变量前面的星号在named_scope参数列表中的含义是什么?

我有一个像这样的命名范围:

named_scope :by_items, lambda |*items| {
  :joins => :items,
  :conditions => ["items.id in (?)", items.map(&::id)]
}
Run Code Online (Sandbox Code Playgroud)

什么*item意思?当我打电话给它Item.find(:first, ...)时工作正常.如果我尝试使用集合进行调用,Item.find(:all, ...)则会失败.

从一个不同的SO问题,我知道签名应该是:

Order.by_items(item0, item1, ...)
Run Code Online (Sandbox Code Playgroud)

所以,我的问题还真是,我怎么把一个数组转换成一个逗号分隔的参数列表?

UPDATE0

来自Martin Fowler我了解到:

(在参数列表中使用"*"有助于处理ruby中的变量参数.在参数列表中*disks表示vararg.然后我可以将所有传入的磁盘称为名为"disks"的数组.如果我调用另一个带有"*disks"的函数,磁盘数组的元素作为单独的参数传入.)

UPDATE1

更多关于"splat"运算符.

syntax ruby-on-rails

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

如何最好地处理与ActiveRecord的每个模型数据库连接?

我希望以规范的方式来做到这一点.我的谷歌搜索已经缩短了.我有一个ActiveRecord模型应该映射到不同于应用程序其余部分的数据库.我想将新配置存储在database.yml文件中.

我知道应该调用establish_connection,但是不清楚在哪里.这是我到目前为止所得到的,它不起作用:

class Foo < ActiveRecord::Base
    establish_connection(('foo_' + ENV['RAILS_ENV']).intern)
end
Run Code Online (Sandbox Code Playgroud)

ruby activerecord ruby-on-rails

13
推荐指数
2
解决办法
3286
查看次数

如何设置已禁用的单选按钮的样式?

我在表格单元格中有一组单选按钮.表格单元格的背景颜色与页面背景不同.

基于另一个输入,我有时会禁用一个或多个单选按钮.禁用时,单选按钮的内部将采用表格单元格的背景.圆圈着色有点灰白.这结合起来使按钮看起来像"消失".仔细检查表明它仍然在那里.

我一直在努力定义一个CSS条目来改变禁用单选按钮的外观......可以这样做吗?目前,我正在做这样的事情:

.radio {
    background-color: #FFFFFF;
}

.radio:disabled {
    background-color: #FFFFFF;
}
Run Code Online (Sandbox Code Playgroud)

我是否必须诉诸图像?

更新不是背景问题,而是按钮的内部.当禁用时,按钮的内部呈现表格单元格的背景颜色......哦,这是一个想法.我改变了表格单元格和单选按钮.

css radio-button

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

如何控制构建工具和库的版本?

在源代码管理系统中包含编译器,库和其他工具有哪些建议?

在过去,我遇到了一些问题,尽管我们拥有所有的源代码,但构建旧版本的产品却是一个试图获得Visual Studio,InstallShield和其他工具的正确配置(包括用于构建产品的正确补丁版本.在我的下一个项目中,我想通过将这些构建工具检查到源代码控制中来避免这种情况,然后使用它们进行构建.这也简化了设置新构建机器的工作 - 1)安装我们的源代码控制工具,2)指向正确的分支,3)构建 - 就是这样.

我考虑的选项包括:

  • 将安装CD ISO复制到源代码控制 - 虽然这提供了我们需要的备份,如果我们必须返回到旧版本,它不是"实时"使用的好选项(每个构建都需要从安装步骤开始,这可以很容易地将1小时的构建变成3小时).
  • 将软件安装到源代码管理.ClearCase将您的分支映射到驱动器号; 我们可以在这个驱动器下安装软件.这不会考虑安装工具的非文件部分,例如注册表设置.
  • 安装所有软件并在虚拟机内设置构建过程,将虚拟机存储在源代码管理中,并确定如何让VM在引导时进行构建.虽然我们轻松捕获"构建机器"的状态,但我们获得了VM的开销,并且它对"为开发人员提供相同的工具问题"没有帮助.

这似乎是配置管理的一个基本概念,但我无法追踪任何资源以了解如何执行此操作.有什么建议?

version-control build-automation build-process clearcase

6
推荐指数
2
解决办法
910
查看次数

将django表单中的外键字段设为只读,并且仍然可以提交表单

如何使表单中的外键字段只读但仍允许在提交表单后将该字段识别为有效?根据 W3C,一旦提交表单,禁用字段就会被忽略......使用下面的代码,我可以将字段设置为禁用,因此只读,但我的表单不会通过

    def __init__(self, *args, **kwargs):
       super(IssuesForm, self).__init__(*args, **kwargs)
       self.fields['vehicle'].widget.attrs['readonly'] = True
Run Code Online (Sandbox Code Playgroud)

想法……?

html forms django readonly

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