首页 > 解决方案 > 在 Rails 中的 link_to 参数中的符号 (@)

问题描述

大家。原谅我的英语中的任何错误,因为它是我的第二语言。这里也只是我的第二个问题。

我正在学习 Ruby on Rails,我有一个非常基本的问题,但遗憾的是无法在任何地方找到具体的答案。

所以,我所做的只是一个简单的脚手架(rails g scaffold book title author status:integer),仅此而已,我正在研究它所做的一切。就这样。

问题是我不明白为什么在索引视图中“link_to”助手使用“book”作为参数而不是“@books”来编辑和销毁链接。

在此处输入图像描述

由于在显示视图中,相同的“link_to”使用@book 进行编辑。

在此处输入图像描述

起初,我认为它们可以互换,但事实并非如此,因为当我更改“@”时,Rails 会引发错误。我显然在这里缺少一些基本的东西。

这两种观点的差异从何而来?

谢谢你们。

标签: ruby-on-rails

解决方案


在您的视图中,show@book是在您的控制器中声明的变量,其中包含书籍集合。这个集合是通过 for_each 方法遍历的,在每次旅行中,你都会得到一本书,它保存在一个变量中| book |,这book是你的@books集合的一个实例,并link_to接收它来构建链接。

在您的编辑视图中,@book 是在您的控制器中声明的变量。您可能不清楚为什么在使用 before 操作调用的方法中声明该变量。

@ 用于定义@instance_variable


推荐阅读