Javascript 如何用复制图像预填充_表单?

Javascript 如何用复制图像预填充_表单?,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,用户可以点击特色灵感,用该特色灵感中的数据预填充新表格。数据为:文本和/或:图像。这样用户就可以将先前存在的灵感保存到自己的灵感列表中 :text正确预填充表单,但由于某些原因:image保持为零 控制器 安慰 _形式 使现代化 建议的灵感 我想知道你需要做的是这样的事情: @inspiration = existing_inspiration.dup @inspiration.image_file_name = existing_inspiration.image_file_name 省去复

用户可以点击特色灵感,用该特色灵感中的数据预填充新表格。数据为:文本和/或:图像。这样用户就可以将先前存在的灵感保存到自己的灵感列表中

:text正确预填充表单,但由于某些原因:image保持为零

控制器 安慰 _形式 使现代化 建议的灵感
我想知道你需要做的是这样的事情:

@inspiration = existing_inspiration.dup
@inspiration.image_file_name = existing_inspiration.image_file_name
省去复制品,手工制作深度复制品


看一看。这本书有点老,但它是一篇启发性的讨论,同时也为一些制作深度复制的珍宝指明了方向。

谢谢dlu。我看了这个问题。我也尝试过克隆的建议,加上你选择不使用dup,但由于某种原因,图像不会复制/克隆/上传到新的形式。你能在上面两行之后放置binding.pry,然后看看当你尝试创建新的衍生灵感时实际发生了什么吗?看起来它真的应该能用…好吧,我做了绑定。撬。我应该找什么?对不起,我以前从未用过这个。我是否在[1]pry>之后在终端中编写了一些内容?因此,现在您处于感兴趣的上下文中,您可以尝试一些代码,看看它会做什么,并检查您得到的结果。我首先会尝试这样的方法:existing_inspiration.image_file_name,我希望它返回文件名。如果是这样,那么作业也应该有效。键入control-d继续并将绑定撬杆移动到创建操作中。在那里,你可以看一看,确保你在新灵感中得到了你期望的值。我怀疑你可能从现有的_inspiration.image_文件名中得到了一个零值,我们需要找出原因。一个灵感可以有多个图像吗?
[41] pry(main)> Inspiration.last
  Inspiration Load (1.7ms)  SELECT  "inspirations".* FROM "inspirations"  ORDER BY "inspirations"."id" DESC LIMIT 1
=> #<Inspiration:0x007fa6d15ec9a8
 id: 13,
 conceal: false,
 user_id: 8,
 created_at: Fri, 26 Feb 2016 15:29:52 EST -05:00,
 updated_at: Fri, 26 Feb 2016 15:29:52 EST -05:00,
 likes: nil,
 name: "",
 image_file_name: nil, #SHOULD BE: "inspiring-quotes-about-life-6gbwrvxd.jpg", 
 image_content_type: nil, #SHOULD BE: "image/jpeg",
 image_file_size: nil, #SHOULD BE: 83348
 image_updated_at: nil> #SHOULD BE: Wed, 24 Feb 2016 15:25:44 EST -05:00>
<%= simple_form_for(@inspiration, html: { data: { modal: true } }) do |f| %> 
  <%= f.file_field :image %>
  <%= f.text_area :text %>
<% end %>
<% @inspirations.each do |inspiration| %>
  <%= link_to inspiration_path(inspiration) do %>
    <div class="box panel panel-default" style="width: 175px;">
      <% if inspiration.image.present? %>
        <div id="box">
          <%= link_to new_inspiration_path(inspiration_id: inspiration.id), data: { modal: true } do %>
            <div class="inspiration-image-button"><span class="glyphicon glyphicon-plus"></span></div>
          <% end %>
          <%= link_to image_tag(inspiration.image.url(:medium)), inspiration %> #This is how image is pulled
        </div>
      <% end %>
      <% if inspiration.name.present? %>
        <div class="panel-body">
          <%= link_to new_inspiration_path(inspiration_id: inspiration.id), data: { modal: true } do %>
            <div class="inspiration-button"><span class="glyphicon glyphicon-plus"></span></div>
          <% end %>
          <%= inspiration.name %>
        </div>
      <% end %>
    </div>
  <% end %>
<% end %>
@inspiration = existing_inspiration.dup
@inspiration.image_file_name = existing_inspiration.image_file_name