erb中的Ruby三元运算符,带有html标记

时间:2014-01-09 19:59:15

标签: ruby-on-rails ruby sinatra ternary-operator

我正在尝试检查条件,然后包含“停止服务器”和“启动服务器”锚标记。我收到了一个错误。

请告知要更改的内容。感谢。

<%= condition ? "Running" <a href='/stop'> Stop Server </a> :"Stopped" <a href='/start'> Start Server</a> %> </td>

3 个答案:

答案 0 :(得分:7)

你正在混合代码和HTML。做这样的事情会更清楚:

<% if condition %>
    "Running" <a href='/stop'> Stop Server </a>
<% else %>
    "Stopped" <a href='/start'> Start Server</a>
<% end %>

答案 1 :(得分:2)

查看link_to_if

 <%= 
   link_to_if condition, 'Run server', run_server_path do
     link_to 'Stop server', stop_server_path
   end 
 %>

答案 2 :(得分:0)

你应该这样做。

<%= condition ? "Running <a href='/stop'> Stop Server </a>" :"Stopped <a href='/start'> Start Server</a> %> </td>"

锚标记本身不是有效的ruby语句而erb是关于动态视图的。一旦你将ruby语句作为一个你缺少的字符串,它就会生效。