【发布时间】:2023-03-13 21:45:01
【问题描述】:
我有这个:
<%= render :partial => "rewards", :collection => @rewards, :as => :reward %>
当我用<%= @rewards.count %> 计算集合中的项目时,它显示为 1,我检查了数据库是否只有一个奖励。但是,部分在我的主视图中呈现了两次,第二个是空的(奖励 == nil)。这有什么线索吗?
更新:
找到原因了,在这个render语句之前,有一个user.rewards.build创建表单的语句:
<%= render :partial => "form_reward", :locals => {:user => @user, :reward => @user.rewards.build } %>
<%= render :partial => "rewards", :collection => @rewards, :as => :reward, :locals => {:user => @user } %>
不知何故,部分也渲染了这个对象!我猜这是因为名称污染。那么现在如何克服这个问题呢?
【问题讨论】:
标签: ruby-on-rails