Jquery 使用文件\字段元素的Rails嵌套表单
我正在使用RailsCast197上的代码使用jQuery创建嵌套表单。我面临的挑战是嵌套模型使用文件字段元素,因此在查看编辑视图时,我只看到一个空文件字段元素列表。当用户查看编辑视图时,我是否可以告诉rails显示其他内容(如禁用的文本字段),但在查看新视图时显示文件字段 这是我正在使用的部分:Jquery 使用文件\字段元素的Rails嵌套表单,jquery,ruby-on-rails,partial-views,nested-forms,Jquery,Ruby On Rails,Partial Views,Nested Forms,我正在使用RailsCast197上的代码使用jQuery创建嵌套表单。我面临的挑战是嵌套模型使用文件字段元素,因此在查看编辑视图时,我只看到一个空文件字段元素列表。当用户查看编辑视图时,我是否可以告诉rails显示其他内容(如禁用的文本字段),但在查看新视图时显示文件字段 这是我正在使用的部分: <div class="fields"> <p> <%= f.label :document_type %> <%=
<div class="fields">
<p>
<%= f.label :document_type %>
<%= f.select :document_type, XmlDocument::SOURCES %>
</p>
<p>
<%= f.file_field :inputfile, :class => 'text' %>
<%= f.hidden_field(:_delete) + link_to('Remove', "javascript:void(0)", :class => "remove_child remove-xmldoc") %>
</p>
</div>
但在我的表格中,我有:
<div id="xml_documents">
<%= label_tag 'XML Documents' %>
<% form.fields_for :xml_documents do |stream_xml_document_form| %>
<%= render :partial => "xml_document", :locals => {:f => stream_xml_document_form} %>
<% end %>
<p><%= link_to('Add XML Document', "javascript:void(0)", :class => "add_child add-xmldoc", :"data-association" => :xml_documents) %></p>
<%= new_child_fields_template(form, :xml_documents) %>
</div>
“xml\u文档”,:locals=>{:f=>stream\u xml\u文档\u form}%>
“添加子添加xmldoc”,:“数据关联”=>:xml\u文档)%>
这就是添加部分的原因,我猜在这里的某个地方,我需要一个某种条件,告诉rails如果对象已经创建或没有创建,则呈现不同的部分。。有人对我如何完成这一点有什么想法吗?区分“新建”和“编辑”操作的最简单方法是检查form.object.new\u记录?这将为“新建”操作返回true,为“编辑”操作返回false 所以你可以这样做
<%= f.file_field :inputfile, :class => 'text' if f.object.new_record? %>
如果f.object.new\u记录为“text”?%
我忙得不可开交,让我看看我能不能让它发挥作用,什么是“object”,rails知道这是什么还是你引用了我所说的任何对象。如果你使用form_作为助手,即“form_代表@post do | form |”,那么你可以通过调用“form.object”来访问@post对象。对不起,我花了这么长时间才找到你的解决方案,谢谢你的帮助!
<%= f.file_field :inputfile, :class => 'text' if f.object.new_record? %>