【问题标题】:Data between Partials and Parent View Ruby on Rails部分和父视图之间的数据 Ruby on Rails
【发布时间】:2014-08-17 10:16:31
【问题描述】:

所以我有一个 new.html.erb,其中包含新广告的表单。此视图呈现部分以上传名为 _upload_control.html.erb 的图像。它包含 并且我试图引用在 new.html.erb 中上传的文件,以便在父控制器中获取文件。有没有办法做到这一点?

【问题讨论】:

  • 什么?从父视图访问部分数据(这没有意义)与从控制器访问它有什么关系?
  • 控制器可以访问由表单中的数据填充的参数哈希。表单中的部分即时渲染用于为不同的对象上传多个文件,因此它不使用“f”。所以我需要某种方式将文件传递给父视图,以便我通过控制器中的参数哈希访问它。这有意义吗?
  • 没有。表单被提交给控制器——该表单是在视图中还是在部分视图中是无关紧要的。如果表单包含带有字段的部分,那么当提交该表单时,部分中的字段也将被提交。
  • 如果您要为 new.html.erb、有问题的部分以及可能的控制器发布代码,这将有助于澄清一些事情

标签: ruby-on-rails model-view-controller partials


【解决方案1】:

根据您的评论

The partial i'm rendering in the form is used to upload multiple files for a different object, so its not using 'f'

您应该使用f(form builder) 并且需要在本地传递您的表单构建器,以便可以使用特定的表单构建器调用您的部分,例如:

<%= form_for resource1 do |f|  %>
  <%=  render :partial => 'upload_control', :locals => { :f => f }  %>
<% end %>

<%= form_for resource2 do |builder|  %>
  <%=  render :partial => 'upload_control', :locals => { :builder => f }  %>
<% end %>

和你的部分_upload_control.html.erb

<%= f.file_field :fileupload %>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    • 2012-07-07
    • 2016-02-26
    • 2012-04-16
    • 1970-01-01
    相关资源
    最近更新 更多