如何在rails中创建div ID变量?

时间:2010-10-07 23:00:56

标签: jquery ruby-on-rails css ajax prototypejs

我觉得应该有一个简单的方法来做到这一点,但我只是不知道它是什么。我有一个要显示的数据列表,我想要包含一个AJAX“Read More”功能来扩展每个段底部的信息。为此,我需要在每个段中使用唯一的div ID。我有这段代码:

<% for choice in @student_choices %>
    <div id= "student_description", style="display:none;">
        <%= choice[:description]%>
    </div>
    <%= link_to_function "Read More", "Element.show("student_description")"%>
<% end %>

但由于有多个div ID,因此单击“Read More”仅显示第一个。如何插入变量div ID?我知道如何在PHP中执行此操作,但这让我很难过。即使我们将div ID本身变为可变,我们如何让Element.show接受变量?

3 个答案:

答案 0 :(得分:5)

您可以执行以下操作:

<% div_id = "student_description_#{choice.id}" -%>

<div id="<%= div_id -%>", style="display:none;">
    <%= choice.description %>
</div>

<%= link_to_function "Read More", "Element.show('##{div_id}')" %> 

答案 1 :(得分:3)

传统的rails方式是使用dom_id

然后您可以执行类似

的操作
<% for choice in @student_choices %>
    <div id="<%= dom_id(choice) %>" style="display:none;">
        <%= choice[:description]%>
    </div>
    <%= link_to_function "Read More", "Element.show('#{dom_id(choice)}')"%>
<% end %>

答案 2 :(得分:0)

虽然您可以使用给定的示例(哪些工作),但我建议使用rails函数(http://api.rubyonrails.org/classes/ActionView/Helpers/RecordTagHelper.html)。然后在按钮/链接上,您只需找到具有特定类的最近的div,然后拉出ID并执行显示逻辑。