ruby-on-rails - 在 Rails 中的 link_to 参数中的符号 (@)
问题描述
大家。原谅我的英语中的任何错误,因为它是我的第二语言。这里也只是我的第二个问题。
我正在学习 Ruby on Rails,我有一个非常基本的问题,但遗憾的是无法在任何地方找到具体的答案。
所以,我所做的只是一个简单的脚手架(rails g scaffold book title author status:integer),仅此而已,我正在研究它所做的一切。就这样。
问题是我不明白为什么在索引视图中“link_to”助手使用“book”作为参数而不是“@books”来编辑和销毁链接。
由于在显示视图中,相同的“link_to”使用@book 进行编辑。
起初,我认为它们可以互换,但事实并非如此,因为当我更改“@”时,Rails 会引发错误。我显然在这里缺少一些基本的东西。
这两种观点的差异从何而来?
谢谢你们。
解决方案
在您的视图中,show@book
是在您的控制器中声明的变量,其中包含书籍集合。这个集合是通过 for_each 方法遍历的,在每次旅行中,你都会得到一本书,它保存在一个变量中| book |
,这book
是你的@books
集合的一个实例,并link_to
接收它来构建链接。
在您的编辑视图中,@book 是在您的控制器中声明的变量。您可能不清楚为什么在使用 before 操作调用的方法中声明该变量。
@ 用于定义@instance_variable
推荐阅读
- python - 过滤数据帧的索引,该索引首先在任何地方包含某个字符,然后在任何地方包含另一个字符(例如,首先是“1”,然后是“3”),python
- javascript - 如何从通过 XMLHttpRequest 获得的 json 中获取值?
- kubernetes - 通过公共 url 访问部署在 eks 上的超集
- c# - 使用 yield 生成随机数会在调试模式下更改其值
- ios - 使用 YogaKit 时出现 PNChart 显示问题
- reactjs - 图像未显示在反应中
- wind-river-workbench - 为什么WindRiver diab 编译器的输出在Windows 和Linux 主机之间存在差异?
- android - Android Studio 无法在 build.gradle 中添加库项目
- python - 发现显着性图之间的损失
- python - Heroku 应用程序在部署后立即崩溃