【问题标题】:Rails: Rendering a partial to the right div?Rails:将部分渲染到正确的div?
【发布时间】:2010-06-19 03:30:40
【问题描述】:

我的视图中有一个循环,它呈现许多部分:每个部分都是一个简单的切换,用于对记录执行保存/取消保存操作。每个部分使用 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 部分呈现给具有正确 id 的 div?

谢谢!

【问题讨论】:

  • 能够看到您正在谈论的循环会很有帮助。我也不完全确定你想要完成什么。
  • 为什么要渲染控制器的部分表单?我们需要看到更多。

标签: ruby-on-rails html partial renderpartial


【解决方案1】:

仅查看您为问题提供的少量信息,我猜代码中的罪魁祸首是div 标签。

div 标签应该在部分内。

编辑:您的代码所做的是创建一个 ID 为 save(the first match.id)div 并在其中呈现部分内容。如果我对您的理解正确,则每个match 都需要一个div。为此,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 -%>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-30
    • 2015-01-18
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多