【问题标题】:Passing two parameters to input type file upload传递两个参数输入类型文件上传
【发布时间】:2015-07-10 01:41:32
【问题描述】:

在我的场景中,我使用 CarrierWave 上传图像。但是我的“图像”模型是多态的,因为不止一个模型使用“图像”模型。对于每个模型,有 4 种不同的图像类型(图标、标题、常规、滑块)。所以我会在“Image”模型中为他们制作“ENUM”。但问题是,在“新”或“编辑”视图中,我怎么知道哪个“图像类型”的文件上传?

这是我的图像模型:

class Image < ActiveRecord::Base
    belongs_to :imageable, polymorphic: true

    mount_uploader :image, ImageUploader

    enum image_type: {icon: 1, title: 2, regular: 3, slider: 4}
end

这是服务模型(该模型是具有图像的模型之一):

class Service < ActiveRecord::Base
    has_many :images, as: :imageable, :dependent => :destroy
    accepts_nested_attributes_for :images

end

这是我的 _form.html.erb:

<div class="control-group">
   <!-- <label class="control-label" for="input1">Adı</label> -->
   <div class="controls">
      <%= f.input :service_name, input_html: { class: "span6", id: "input1"}, label: "Hizmet Adı" %>
   </div>
</div>
<div class="control-group">
   <!-- <label class="control-label" for="inputRemarks">Adres</label> -->
   <div class="controls">
      <%= f.input :service_description, input_html: { class: "span12 wysihtml5", rows: "6"}, as: :text, label: "Hizmet Açıklaması" %>

   </div>
</div>
<div class="control-group">
   <----- THIS PART IS FOR FILE UPLOAD ----------->
   <div class="controls">
      <label class="control-label">Hizmet Büyük Resimi</label> 
      <div class="fileupload fileupload-new" data-provides="fileupload">
        <div class="fileupload-new thumbnail" style="width: 200px; height: 150px;"><img src="http://www.placehold.it/200x150/EFEFEF/AAAAAA&amp;text=no+image" alt=""/></div>
        <div class="fileupload-preview fileupload-exists thumbnail" style="max-width: 200px; max-height: 150px; line-height: 20px;"></div>
        <div>
          <span class="btn btn-file"><span class="fileupload-new">Resim Seç</span><span class="fileupload-exists">Değiştir</span>
          <%= f.input :images, input_html: { type: :file, class: "default"}, wrapper: false, label: false %></span>
          <a href="#" class="btn fileupload-exists" data-dismiss="fileupload">Sil</a>
        </div>
      </div>

      <----- THIS PART IS FOR FILE UPLOAD ----------->
   </div>
</div>

<div class="control-group">
   <!-- <label class="control-label" for="input2">Soyadı</label> -->
   <div class="controls">
      <%= f.input :meta_keywords, input_html: { class: "span6", id: "input2"}, label: "Anahtar Kelimeler" %>
   </div>
</div>


<div class="form-actions">
  <%= button_tag(type: 'submit', class: "btn btn-primary") do %>
     Kaydet
  <% end %>


   <!-- <button type="button" class="btn">Cancel</button> -->
</div>

我是 Rails 新手,难不难,我还不知道。但这种类型的解决方案对我来说看起来不错。但我被这个问题困住了,我需要你的帮助。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 carrierwave image-uploading


    【解决方案1】:

    我已经找到了解决方案,正如我所说的,我对 Rails 很陌生,而且 Rails 中有一个“fields_for”表单助手。因此对于嵌套属性,您可以使用“fields_for”表单助手来完成。在我的场景中,我为此添加了隐藏字段。

    【讨论】:

      猜你喜欢
      • 2014-10-23
      • 1970-01-01
      • 1970-01-01
      • 2013-11-21
      • 1970-01-01
      • 1970-01-01
      • 2015-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多