Как мне сделать мои переменные идентификаторы div в рельсах? - PullRequest
1 голос
/ 08 октября 2010

Я чувствую, что должен быть простой способ сделать это, но я просто не знаю, что это такое.У меня есть список данных для отображения, и я хочу включить функцию AJAX «Подробнее» для расширения информации в нижней части каждого сегмента.Для этого мне нужны уникальные идентификаторы div в каждом сегменте.У меня есть этот код:

<% 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, при нажатии «Подробнее» отображается только первый.Как мне вставить переменную DIV ID?Я знаю, как сделать это в PHP, но это поставило меня в тупик.Даже если мы получим сам идентификатор div как переменную, как заставить Element.show принять переменную?

Ответы [ 3 ]

5 голосов
/ 08 октября 2010

Вы можете сделать что-то вроде:

<% 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}')" %> 
3 голосов
/ 08 октября 2010

Обычный способ сделать это - использовать 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 %>
0 голосов
/ 08 октября 2010

Хотя вы могли бы использовать приведенные примеры (которые работают), я мог бы предложить использовать функцию rails (http://api.rubyonrails.org/classes/ActionView/Helpers/RecordTagHelper.html).Затем по кнопке / ссылке вы просто находите ближайший div с определенным классом, извлекаете идентификатор и выполняете логику отображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...