0
<%= link_to "Next week", "/?week_forward= %>
<% if week_number % 52 == 0 %> 
    2 
<% else %> 
    1
<% end %>
<%= + #{(params[:week_forward].to_i || 0)}" %>

我试图在我的 html.erb 中得到这个。我真的不确定出了什么问题,我的引号错了吗?

这是错误

bad URI `/?week_forward=%20);@output_buffer.safe_concat('');%20if%20week_number%20%%2052%20==%200%20%20@output_buffer.safe_concat(''2'');%20else%20%20@output_buffer.safe_concat(''1'');%20end%20@output_buffer.append=%20(%20+%200'.
4

3 回答 3

0

跳出来的明显错误是后面缺少的双引号:"/?week_forward=

此外,您绝对应该helpers在 Rails 中查找,并将大部分代码移出视图。

于 2012-09-11T04:02:37.750 回答
0

你没有link_to正确使用;周数12需要成为第二个参数的一部分,而不是在调用link_to.

<%= link_to "Next week", "/?week_forward=%d" % (week_number % 52 == 0) ? 2 : 1 %>

link_to将创建以下内容(一旦您在 之后修复关闭引号"/?week_forward=

<a href="/?week_forward=">Next Week</a>1

当你似乎想要类似的东西时

<a href="/?week_forward=1">Next Week</a>
于 2012-09-11T04:03:19.717 回答
0

使用以下看起来非常漂亮的

<% forward = params[:week_forward].to_i || 0 
   week_forward = week_number % 52 == 0 ? 2 : 1
%>
<%= link_to "Next week", "/?week_forward=#{week_forward+forward}" %>
于 2012-09-11T04:29:47.490 回答