Rails: Рендеринг партиала в правильный div?

В моем представлении есть цикл, который отображает множество частичных фрагментов: каждый фрагмент представляет собой простой переключатель для выполнения операции сохранения/отмены записи. Каждая часть переключает логическое поле с помощью javascript, затем обновляет себя, и контроллер заканчивает, говоря:

$ controller
render :partial => "save_unsave_buttons", :locals => {:matching => @matching}, :layout => false

# view    
<div id=<%= "save#{match.id}" -%>>
<%= render :partial => "save_unsave_buttons", :locals => {:matching => match} %>
</div>

Когда контроллер отображает партиал save_unsave_buttons, он не отображается в правильном div; он просто обновляет партиал для первой найденной записи. Как я могу попросить контроллер отобразить часть save_unsave_buttons в div с правильным идентификатором?

Спасибо!


person sscirrus    schedule 19.06.2010    source источник
comment
Было бы полезно увидеть петлю, о которой вы говорите. Я также не совсем уверен, чего вы пытаетесь достичь.   -  person Jamie Wong    schedule 19.06.2010
comment
Почему вы рендерите частичную форму контроллера? Нам нужно увидеть больше.   -  person thomasfedb    schedule 19.06.2010


Ответы (1)


Глядя только на ту небольшую информацию, которую вы предоставили для своей проблемы, я предполагаю, что виновником кода является тег div.

Тег div должен быть внутри партиала.

EDIT: ваш код создает один div с идентификатором save(the first match.id) и отображает в нем частичное. Если я вас правильно понял, вам нужно div для каждого match. Для этого сам div должен быть внутри партиала.

Так что передайте match.id партиалу в collection. Ваше представление должно быть:

# view    

<%= render :partial => "save_unsave_buttons", :locals => {:matching => match, :collection => {@match_id => match.id} } %>

и в вашем частичном файле _sav_unsave_buttons.html.erb:

<% content_tag :div, id => "save#{@match_id}" do %>

     #YOUR CODE GOES HERE!

<% end -%>
person Shripad Krishna    schedule 19.06.2010