我有一个Node
对象,我试图在模态中更新。
这是模式中用于屠杀对象的simple_form:
# shared/_tag_icon.html.erb
<%= simple_form_for node, url: add_tagged_user_node_path(node), method: :post do |f| %>
<div class="form-inputs">
<%= f.association :user, label: "Users", collection: @users, as: :check_boxes, checked: node.user_tags %>
</div>
<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>
这是从shared/_box.html.erb
部分:
<%= render partial: "shared/tag_icon", locals: { node: node } %>
本身正在Dashboard#Index
视图的循环中呈现:
<% @nodes.each do |node| %>
<div class="box">
<%= render partial: "shared/box", locals: {node: node} %>
</div>
<% end %> <!-- node -->
这是我的Dashboard#Index
控制器操作的截断版本:
def index
@nodes = @family_tree.nodes.includes([:comments => :user], :media, :node_comments, :user, :user_tags)
tagged_nodes = Node.tagged_with(current_user.email)
if !tagged_nodes.empty?
tags = tagged_nodes.collect do |node|
node.user_tags
end
tags.flatten!
@tagged_users = tags.collect do |tag|
User.find_by email: tag.name
end
@tagged_users.reject!(&:blank?)
end
end
我不认为该控制器的后半部分是相关的,但鉴于它确实与某些node
个对象进行了交互,我将其包含在内是为了安全。
我遇到的问题是无论我尝试标记哪个节点(即执行该模式/ simple_form),它总是生成最新节点 - 即最近上传的节点,而不是传入的节点通过部分)。
我一路上添加了调试语句,当视频呈现在Dashboard/Index
上时,它正确地完成了。只有一次点击simple_form,一切都会出错。
修改1
我甚至尝试将shared/_tag_icon
部分的原始渲染部分移动到Dashboard#Index
视图,并且我仍然在该节点上的该模式中获得了错误的值。