link_to与数据切换中的嵌入式ruby

时间:2016-02-24 05:00:47

标签: ruby-on-rails ruby

我正在关注this SE问题,将表单放入带有rails的bootstrap模式中。 回答问题的人说:“确保每个模态身体都有一个独特的身份或类别。”所以我想在我的link_to中添加一个唯一的ID号:

<%= link_to "Edit", edit_post_path(post.id), :class => "btn", :remote => true, "data-toggle" => "modal", "data-target" => "<%= post.id %>-my-modal" %>

但这会导致错误。如果我拿出&lt;%= post.id%&gt;我没有错误,但模态行为不起作用。

如何将带有嵌入式ruby的post.id添加到链接?

3 个答案:

答案 0 :(得分:3)

你必须这样写:

<%= link_to "Edit", edit_post_path(post.id), :class => "btn", :remote => true, "data-toggle" => "modal", "data-target" => "#{post.id}-my-modal" %>

答案 1 :(得分:1)

打开&lt;%...%&gt;后标签,你正在编写ruby代码。这意味着您无法嵌套&lt;%...%&gt;另一个&lt;%...%&gt;内的标签tag,因为这些标签不是ruby语法。

在标签内部,要进行字符串插值,请使用普通的ruby方法:

<soapenv:Body>
    <tns:executeXml xmlns:tns=\"http://soap.sforce.com/schemas/class/[WSDL_File_Name]">

       <!-- ...BECOMES THIS ELEMENT: -->
       <tns:reqXml><!-- (MY ESCAPED XML PAYLOAD GOES HERE) --></tns:reqXml>

    </tns:executeXml>
</soapenv:Body>

答案 2 :(得分:0)

唯一的错误是放另一个(ruby)标签&lt; %%&gt;在同一个标​​签内。

erb (嵌入式红宝石)中,一个&lt;%=%&gt;标签里面没有其他标签。

此代码导致语法错误。

<%= link_to "Edit", .... "data-target" => "<%= post.id %>-my-modal" %>

如果您打算在标记内输出/呈现数据并引用为字符串, 使用 #{put_data_hare}

输出如:

<%= link_to "Edit", .... "data-target" => "#{post.id}-my-modal" %>

在其他情况下,您可以这样做:

post.id.to_s + "-my-modal"