我知道你可以在Rails中创建命名范围,它允许你指定可以在以后构建的条件:
named_scope :active, :conditions => {:active => true}
...
MyModel.active.find(...)
Run Code Online (Sandbox Code Playgroud)
这通过创建一个代理对象来工作,该代理对象直到稍后才进行评估.我想知道的是,是否可以创建一个动态的未命名范围?
我的意思是,有一种方法'foo'我可以去
scope = MyModel.foo(:conditions => {:target_id => 4})
Run Code Online (Sandbox Code Playgroud)
然后scope作为代理对象传递,我可以做更多的.finds或其他范围的调用?
class AdminController < ApplicationController
scaffold :product
end
Run Code Online (Sandbox Code Playgroud)
上面的代码在 Rails 1.2 中可以正常工作。但对于上面提到的代码,它给出了 Rails 2.2.2 中缺少“scaffold”的错误方法。上面的代码用于Rails 1.2中的动态脚手架。Rails 2.2.2 支持这个动态脚手架吗?
或者我是否需要在 Rails 2.2.2 中使用 ruby script/generate 'model_name' field_names 来生成静态脚手架?
我正在处理的应用程序有一个字段,可以输入字符串.
字符串中的特殊字符会在计算字符串时导致插入不同的内容,但这些特殊字符前面可以包含一个转义字符(反斜杠),这会导致特殊字符按字面输出而不是其特殊含义.
可以将其视为与正则表达式类似:.匹配任何字符但\.匹配点.
当转义字符后跟一个不需要转义的字符时,最直观的事情是什么?例如,它会更有意义:
\f变为f("逃脱的f")\f保持为\f所有这些都是可能的,在我看来是合理的.但哪个更有意义,哪个在其他语言中最常见?
这个问题最好用代码示例来总结:
module TestOne
module Foo
def foo
42
end
end
module Bar
include Foo
end
class Quux
include Bar
end
end
TestOne::Bar.ancestors # => [TestOne::Bar, TestOne::Foo]
TestOne::Quux.ancestors # => [TestOne::Quux, TestOne::Bar, TestOne::Foo, Object, Kernel]
TestOne::Quux.new.foo # => 42
module TestTwo
class Quux
end
module Bar
end
module Foo
def foo
42
end
end
end
TestTwo::Quux.send :include, TestTwo::Bar
TestTwo::Bar.send :include, TestTwo::Foo
TestTwo::Bar.ancestors # => [TestTwo::Bar, TestTwo::Foo]
TestTwo::Quux.ancestors # => [TestTwo::Quux, TestTwo::Bar, Object, Kernel]
TestTwo::Quux.new.foo # =>
# ~> -:40: undefined method …Run Code Online (Sandbox Code Playgroud) 如果声明容器组件而未设置特定高度值,则contaniner的高度将自动设置为一个值,该值可以显示其所有内容/子项而无需滚动(如果可能).
使用适当的高度初始化组件后,我明确更改容器的高度值.
我的问题是,在我更改组件的高度后,是否可以切换回根据容器内容自动设置的原始高度?我正在寻找一些方法来取消组件高度的显式值.
在Flash中创建一个新的AS3文档,粘贴以下代码并运行它:
var a:Number=0;
trace(a) // 0
a+=0.3;
trace(a) // 0.3
a+=0.3;
trace(a) // 0.6
a+=0.3;
trace(a) // 0.8999999999999999
a+=0.3;
trace(a) // 1.2
a+=0.3;
trace(a) // 1.5
a+=0.3;
trace(a) // 1.8
a+=0.3;
trace(a) // 2.1
a+=0.3;
// ^ This is the output. Notice the inaccuracy starting from 0.9 / 0.89
Run Code Online (Sandbox Code Playgroud)
为什么错误?我只是做一个普通的高分辨率加法.
任何解决方法?
apache-flex ×1
c# ×1
escaping ×1
flash ×1
flex4 ×1
include ×1
math ×1
module ×1
named-scope ×1
ruby ×1
scaffolding ×1