在.erb文件中使用link_to,连接语法

时间:2011-09-12 19:16:52

标签: ruby-on-rails concatenation erb

  1. 在index.html.erb中,我希望每个大学的链接如下所示:申请 - $ 25

  2. 我希望显示的价格根据college.undergrad_app_fee的值而变化。

  3. 这是我尝试过的,但它不起作用。也许有一种特殊的连接语法可以将明确的“应用 - ”与价格结合起来,或者我需要转义<%=%>不知何故,还是有一种特殊的方法可以用link_to做到这一点?

       <td><%= link_to 'Apply - ' college.undergrad_app_fee, college.application_url %></td>
    

1 个答案:

答案 0 :(得分:12)

使用字符串插值语法:

<td><%= link_to "Apply - #{college.undergrad_app_fee}", college.application_url %></td>

作为奖励,如果您只有原始价格,可以使用number_to_currency格式化:

<td><%= link_to "Apply - #{number_to_currency(college.undergrad_app_fee)}", college.application_url %></td>

跟进:

对于条件链接,使用link_to_iflink_to_unless,它们应该相对简单易用。

处理货币格式的nil案例有点棘手。您可以使用||运算符来执行此操作。

结合这两种方法可以得到:

<td><%= link_to_if college.application_url, "Apply - #{number_to_currency(college.undergrad_app_fee || 0)}", college.application_url %></td>

使用rails控制台是测试不同助手行为的好方法。您可以通过helper对象访问它们,例如:

> helper.number_to_currency(12)
 => "12,00 €"
> nil || 0
 => 0
> 12 || 0
 => 12