2

对不起,但这是一个新手问题。

已经有很多关于“link_to”的问题,但没有人回答我的问题,我认为这并不是link_to所特有的......

创建这样的链接有效

<%= link_to person.automobile_id, person %>

但是,这样尝试是行不通的

<%= link_to (translation.request_id, translation) %>

这会产生一个错误:

syntax error, unexpected ',', expecting ')'

这让我很困惑,因为在我看来,我只是在link_to的参数周围加上括号。

我有什么误解?

4

2 回答 2

4

你有一个额外的空间:

link_to (translation.request_id, translation)

应该读:

link_to(translation.request_id, translation)

这是 ruby​​ 中的语法错误:

[~]$ ruby -e 'def adds(x, y) x+y end; puts adds (1, 2)'
-e:1: syntax error, unexpected ',', expecting ')'
def c(x, y) x+y end; puts adds (1, 2)
                                  ^
于 2013-05-13T22:53:57.077 回答
3

在大多数情况下,方法参数的括号在 Ruby 中是可选的。

link_to("link name", path) 

相当于

link_to "link name", path

后一个示例在 Rails 社区中更为惯用。

但是,必须保留间距。如果省略括号,则方法和参数之间只能有一个空格。对于刚接触 Ruby 和 Rails 的人来说,它可能看起来有点奇怪,但它被如此普遍地使用,你很快就会习惯它。

例外情况是,如果您将方法链接在一起并且较早的方法之一有一个参数,那么您将需要包含括号。

于 2013-05-14T00:13:33.123 回答