ruby-on-rails - link_to 与 Rails 中的 block

标签 ruby-on-rails

我在这个存储库中看到了这段代码:

<%= link_to(:controller => 'account', :action => 'select', :account_id => account.customer_id) { account.customer_id.to_s } %>
    (<%= account.login %> / <%= account.company_name %> )

这实际上转换为以下 HTML:

<a account_id="8282277272" action="select" controller="account">8282277272</a>
        ( loginname / companyname )

我想知道您将如何将 block 传递给 link_to 以使其工作?

最佳答案

我想这就是您要找的。 “do..end”中的内容将被放入 a 标签中。

<%= link_to(:controller => 'account', :action => 'select', :account_id => account.customer_id) do %>
    (<%= account.login %> / <%= account.company_name %> )
<% end %>

它应该产生

<a href="<path to controller with account_id parameter>">
    (username / Company, Inc.)
</a>

您的原始代码中发生的事情是表达式 { account.customer_id.to_s } 作为 block 传递给 link_to。如果您希望客户 ID 与“登录名”和“公司名称”一起显示,请将其放在 block 内。

关于ruby-on-rails - link_to 与 Rails 中的 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20690148/

相关文章:

ruby-on-rails - 使用 google drive API 将 docx 导出为压缩的 html

ruby-on-rails - Rails 3 禁用 session cookie

ruby-on-rails - Rails 控制台 'y' 助手返回 NameError 而不是 yaml 格式输出

ruby-on-rails - 你怎么修?格式 :label_method is no longer available

ruby-on-rails - 如何在Rails中仅显示一次Flash消息?

ruby-on-rails - 通过 capistrano 将特定的 git 分支部署到临时服务器

ruby-on-rails - 更新到 MacOS Sierra 时出现 Cliver 和 PhantomJS 错误

ruby-on-rails - 将 ActiveSupport::TimeWithZone 转换为 DateTime

ruby-on-rails - 如何通过 Hotwire Turbo 流正确渲染图像?

ruby-on-rails - rails : access controller instance variable in CoffeeScript or JavaScript asset file