fil*_*nut 2 ruby ruby-on-rails erb
Ruby on Rails新手问题......
请考虑以下代码(在视图中):
<div class="meta">
<%= link_to time_ago_in_words(status.created_at) + " ago", status %> |
<span class="admin">
<%= link_to "Edit", edit_status_path(status) %> |
<%= link_to "Delete", status, method: :delete, data: { confirm: "Ya sure?" } %>
</span>
</div>
Run Code Online (Sandbox Code Playgroud)
在ERB标签内调用的一些方法对我来说似乎很神奇,而我正试图揭开它们的神秘面纱.如果我不明白它是如何工作的,我觉得使用代码感觉不舒服.
有人能指出我在哪里定义和/或记录下列方法(呃,我认为它们是方法,也许这不是正确的术语)?
这里只有一种方法:edit_status_path.它是在你的路径文件(config/routes.rb)中创建的,最有可能是被调用的另一个方法resources(在这种情况下它会是resources :statuses).
:delete不是一种方法,它是一个符号:http://www.ruby-doc.org/core-2.1.2/Symbol.html
data:单独在红宝石中没有任何意义,它总是带有第二部分(如data: value).它是Hash对象的ruby语法:http://www.ruby-doc.org/core-2.1.2/Hash.html,使用符号作为键.所以
{a: 1}
Run Code Online (Sandbox Code Playgroud)
是相同的
{:a => 1}
Run Code Online (Sandbox Code Playgroud)
I don't feel comfortable using code if I don't understand how it works under the hood. - 我完全理解你.我强烈建议你在开始学习rails之前阅读一些ruby书(不是ruby on rails)(然后从一本好书开始).事实上,我开始从铁轨上学习红宝石,这就是为什么在我堕落之前我讨厌这种语言几个月的原因.
| 归档时间: |
|
| 查看次数: |
144 次 |
| 最近记录: |