可能很明显;我是 Rails 的新手。
我的问题:是否有规则或更简单的方法来记住冒号出现在变量之前或之后?这是我在 application_controller
中谈论的示例。
protect_from_forgery with: :exception
我指的是 with:
和 :exception
。
有没有办法记住冒号什么时候出现在末尾,什么时候出现在开头,或者它只是你在逐个变量的基础上记住的东西?还有,为什么两个都在这里连着呢?
我真的很想了解这个:) 谢谢!
最佳答案
with: :exception
只是 :with => :exception
的语法糖
除了方便和减少输入之外,没有任何实际好处。如果您需要继续支持 ruby 1.8,则可以提出这个论点,您应该继续使用旧语法。
您必须在您提供的示例中实现
protect_from_forgery with: :exception
这是一个传递单个变量的方法,该变量恰好是一个散列。所以以下是等价的。
protect_from_forgery with: :exception
protect_from_forgery(with: :exception)
protect_from_forgery(:with => :exception)
protect_from_forgery({:with => :exception})
随着我的前进,我注意到每个人的输入都多了一点,但他们都在做同样的事情。每个都将带有单个键/值对的散列传递给 protect_from_forgery。
回到你原来的左与右问题,记住左边是你的 key ,它是一个符号。
所以下面的例子都是有效的哈希。
foo = {bar: "baz"}
foo = {bar: 1}
foo = {bar: :baz}
foo = {bar: some_object}
然后意识到这是符号键散列到某些事物、符号、数字、字符串、对象等的快捷方式...这可以取代 {:bar => some_thing} 的旧语法
如果您的 key 不是符号,您将需要使用旧语法。
foo = {1 => :bar}
foo = {"string" => some_object}
关于ruby-on-rails - ruby on rails syntax-变量后的: come before v.什么时候出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26262429/