我对rails非常陌生,我觉得它很“自动”,有点难以理解。对不起,如果这是一个非常基本的问题。
所以,我有一个has_many关联的嵌套表单。我按照railscast进行了正确的配置。但我也想使用我的嵌套元素的id创建一个部分,并且不知道如何获取它。有点难以解释。但它像:
在我的视图:
中# nested form
<%= f.label :uploads, 'Upload photos' %><br>
<%= f.fields_for :uploads do |builder| %>
<%= render "upload_fields", :f => builder %>
<% end %>
<%= link_to_add_fields "Add Image", f, :uploads %>
我的 _upload_fields 部分:
<div class="field quest-image">
<%= render :partial => 'shared/file_upload', :locals => { image: true,
hidden_attr_name: 'quest[uploads_attributes][id]',
hidden_attr_default: :id,
thumbnail: get_image_url( :id, 'missing.png', 'thumb' ) } %>
<%= link_to_remove_fields "remove", f %>
</div>
这样,他读取:id作为主要表单元素id。如何获取内部表单upload_id?有可能吗?
我在这里发布 _file_upload
<div class="fileupload-div">
<% if !local_assigns[:image].nil? && image %>
<div class="fileupload-wrapper">
<%= file_field :upload, :file, class: 'no-nicer-input fileupload-input-image' %>
</div>
<div class="fileupload-files">
<img class='fileupload-thumbnail' src="<%=thumbnail%>" onload="cropAndShow( this )"/>
<% if !local_assigns[:hidden_attr_default].nil? %>
<input type="hidden" name="<%= hidden_attr_name %>" value="<%= hidden_attr_default %>">
<% end %>
</div>
<% else %>
<%= f.file_field :upload, :file, class: "btn btn-large btn-primary" %>
<% end %>
<script>var hidden_attr_name = '<%= hidden_attr_name %>';</script>
</div>