根据帖子推荐更新了这篇文章: rails中不一致的命名约定令我感到困惑。它看起来就像语法中的所有语言一样......
以下是一些示例:
为什么下面的迁移中有逗号?为什么关键字“默认”不是之前的冒号?这个默认关键字是什么?一个方法,一个变量,一个符号..那是什么东西?:
add_column :zombies, :rotting, :boolean, default: false
这是另一个例子:
为什么不衰老:年龄(带结肠)?为什么make_rotting在它之前被称为“:”?
class Zombie < ActiveRecord::Base
before_save :make_rotting
def make_rotting
if age > 20
self.rotting = true
end
end
end
我是一个Java家伙,是的java很冗长,但至少它的一致性我想回去:(
答案 0 :(得分:1)
Ruby和Rails在我同意的开始可能会非常混乱。
如果您提供代码示例,我认为您会得到更好的答案。因为您是初学者,可能会误解variable
表示方法,或:value
表示键/符号。
我可以帮助你一件事:
variable: :value
实际上是
key: :value
(其中:value
是符号)
Ruby的新哈希语法曾经是:
:key => :value
答案 1 :(得分:0)
首先有不同类型的变量:
1.本地变量
foobar
2.Instance变量
@foobar
3.Class变量
@@foobar
4.全局变量
$foobar
您可以通过它们的使用方式区分它们。
现在,如果谈论模型的属性,可以声明为
property :foobar, :type => FIXNUM
现在validate
和validates
都不同
validates :foobar ,:numerically => {:greater_than_or_equal_to => 0}
其中validates
用于验证属性。
validate :method_name
其中validate
用于验证某些方法