ror 中使用 Paperclip 进行多次上传

2023-12-10

我正在使用回形针上传一栋建筑物的一张照片。http://www.youtube.com/watch?v=KGmsaXhIdjc我已经用这种方法做到了。但我决定将多张照片上传到一栋建筑。我可以使用回形针来做到这一点还是必须更改它并使用 jQuery ?如果我可以怎么办?PS:如果需要的话我会上传我的代码。 PS:我正在考虑在数据库中为照片2和照片3再创建2列..顺便说一句,我已经看到所有生成资产来做到这一点。我的想法是,我用不同的方式上传一张照片。这意味着我必须改变一切?

更新1:

在routes.rb中

resources :buildings do 
      resources :photos
  end

在建筑物中>_form

<%= form_for(@building, :html=>{:multipart => true}) do |f| %>
  <% if @building.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@building.errors.count, "error") %> prohibited this building from being saved:</h2>

      <ul>
      <% @building.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :title %><br />
    <%= f.text_field :title %>
  </div>
  <div class="field">
    <%= f.label :status %><br />
    <%= f.select :status, Building::STATUS, :prompt=>'Select status of the building' %>
  </div>
  <div class="field">
    <%= f.label :description %><br />
    <%= f.text_area :description, :rows => 10 %>
  </div>
  <div class="field">
    <%= f.label :price %><br />
    <%= f.text_field :price %>
  </div>
  <div class="field">
    <!--<%= f.label :photo %><br />
    <%= f.file_field :photo %> -->
    <%= f.fields_for :photos do |photo| %>  
    <% if photo.object.new_record? %>
      <%= photo.file_field(:image) %>

     <% else %> 
        <%= image_tag(photo.url(:thumb)) %>
        <%= photo.hidden_field :_destroy %>
        <%= photo.link_to_remove "X"%>
    <% end %>
  <% end %>

    <p><%= f.link_to_add "Add photo", :photos %></p>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

在模型>建筑中

 attr_accessible :description, :price, :status, :title, :photo

accepts_nested_attributes_for :photo, :allow_destroy => true

  has_attached_file :photo ,
                  :url  => "/assets/products/:id/:style/:basename.:extension",
                  :path => ":rails_root/public/assets/products/:id/:style/:basename.:extension"

是的,你可以用回形针来做。我这样做的方式是使用嵌套资源和嵌套形式 gem.

例如你building has_many :photos and photo belongs_to :building

然后在你的/views/buildings/_form.html.erb你会写这样的东西:

<%= nested_form_for @building, :html => { :multipart => true } do |f| %>
  <%# all your building fields .... %>

  <%= f.fields_for :photos do |photo| %>  
    <% if photo.object.new_record? %>
      <%= photo.file_field(:image) %>
    <% else %> 
      <%= image_tag(photo.url(:thumb)) %>
      <%= photo.hidden_field :_destroy %>
      <%= photo.link_to_remove "X" %>
    <% end %>
  <% end %>

  <p><%= f.link_to_add "Add photo", :photos %></p>

  <%= f.submit %>
<% end %>

你必须设置accepts_nested_attributes_for :photos, :allow_destroy => true在你的里面building.rb模型并确保您的routes.rb还包括嵌套:

resources :buildings do 
  resources :photos
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ror 中使用 Paperclip 进行多次上传 的相关文章

  • 动态 jquery 对话框弹出窗口

    我只使用过已知数量的 JQuery 对话框 并且在使动态版本正常工作时遇到了各种麻烦 希望有人能帮助我解决这个问题 这是我用已知数字执行此操作的方法 opener1 click function dialog1 dialog open di
  • 从表单中选择枚举以设置角色

    Ruby on Rails 4 1 我正在将 Devise 与枚举角色一起使用 目前 它在创建用户时使用默认角色 我想在创建用户的表单中添加一个字段来设置枚举角色 I read this https github com RailsApps
  • 传递表 ID 时循环遍历

    我有四个 HTML 表 必须将一个表中的数据与用户选择的表中的数据进行比较 我将用户选择的表 ID 传递到此函数中 但我不知道如何循环此表的行 function callme code var tableName table code al
  • 是否可以使materialize.css模态更大并删除垂直滚动条?

    我刚刚创建了按钮 单击后会弹出一个模式 每个按钮都有一个显示不同练习 gif 的模式 然而 模态框太小 导致用户无法看到整个 gif 迫使他们向下滚动 我想删除滚动条并使模态更大 以便用户可以看到整个 gif 任何帮助都会很棒 这是我的代码
  • 聚合物在核心输入上使用功能验证

    有人可以解释一下如何使用函数验证吗这种聚合物元素 http www polymer project org docs elements core elements html core input 导航到 验证 部分
  • Jqgrid获取我们输入的值并更改表单的可编辑属性

    对不起 伙计们 但我遇到了这两个问题 我希望你们能帮我解决这个问题 这是我的代码的一部分 jQuery VWWMODULE jqGrid url loadstatic php q 2 t CORE VW WMODULE datatype j
  • 从标记访问 json 属性 - gmaps4rails

    我正在升级到 gmaps4rails v2 我似乎无法从 javascript 访问标记 json 属性 这在我使用的先前版本 1 5 6 中有效 具体来说 内置控制器 users User all hash Gmaps4rails bui
  • 在 jQuery 中,每次 DOM 更改时如何调用函数?

    我需要确保即使 DOM 更改后页面仍保持脚本描述的方式 我的脚本必须处理 DOM 的这些更改 以便我的脚本不仅仅处理初始状态 是否有一个事件可以用来处理这些 DOM 更改 从最严格的意义上来说 你的问题是这样的 Narrow the con
  • 是否可以在Chrome中查看jQuery添加的数据

    创建网站时我经常使用 jQuery data 向元素添加数据的函数 是否可以在 Chrome 中查看元素存储的所有数据 因此 当我检查一个元素时 它会在 Chrome 本身中显示数据 如果没有 是否可以编写一个插件来 扩展 到 Chrome
  • 启用scrollX 时标题列与DataTable 不对齐

    我遇到了这个插件反复出现的问题 启用scrollX选项时 标题列未对齐 我尝试了在 stackoverflow 上阅读的许多解决方案 但没有成功 可能是插件版本的问题 但是 这是我的数据表设置 var oTable table dataTa
  • .bind 和其他事件之间的区别

    以下代码行之间有什么区别 或者它们只是编写同一内容的两种不同方式 p click function some code here p bind click function some other code here 我是否过于简化了 因为如
  • 新 Rails 应用程序出现问题

    我刚刚创建了一个新的rails应用程序 在CL上 使用rails new 我使用的是4 2 6 但似乎在我对应用程序执行任何操作之前我遇到了错误 first config environments development rb 53 in
  • Twitter Bootstrap - 下拉菜单 - 箭头键不适用于 Firefox 中的输入标签

    要求 我想在带有用户名和密码字段的下拉菜单中放置一个登录表单 我可以做到这一点 除了以下问题之外 一切正常 Issue 打字时我无法使用箭头键 上 下 firefox 当输入位于下拉代码之外时 这很有效 这适用于其他浏览器 例如 googl
  • 如何将本地文本文件上传到文本区域(网页内)

    我是一名新手程序员 需要一些帮助来弄清楚如何将本地文本文件上传到我正在构建的网站内的文本区域 我非常精通 HTML CSS 对 Javascript JQuery 有相当的了解 而且我刚刚学习 PHP 您能提供的任何帮助我将不胜感激 我有一
  • 为什么 str.substr(0,4) 不是函数?

    我正在用 jQuery 制作一个脚本 我得到了以下数字7 2387 我所拥有的只是得到7 23 为此我编写了以下代码 var str 7 2387 var shorter str substr 0 4 但我收到这个错误 all js 55
  • 在 javascript 中实现固定位置会导致 Safari 滚动时出现抖动

    固定位置不适用于我的用例 因为它固定在浏览器窗口上 您可能会处于文本在屏幕右侧之外且无法到达的状态 无论如何 我尝试使用绝对定位 然后调整javascript中的 顶部 它在 Firefox 和 Chrome 中运行良好 但在 Safari
  • watir selenium:浏览器构造函数无法识别的参数

    在我的 Rails 应用程序中 我有一个 nokogiri watir 爬虫 运行良好 在我升级了 gems 也升级了例如 selenium 后 当我使用以下命令打开爬虫浏览器时 BROWSER OPTIONS w headless no
  • 表单 CSS:根据选中/未选中状态设置单选框的父级(标签)样式

    所以我有一个表格 表格中提出的大多数问题都是使用无线电输入 我要和
  • 如果 jquery 验证激活,如何在单选按钮中放置红色边框[重复]

    这个问题在这里已经有答案了 我的问题是 如果 jquery 验证像示例图片中那样激活 我无法使单选按钮具有红色边框 任何人都可以帮我解决这个问题吗 http i38 photobucket com albums e149 eloginko
  • 如何使用 jQuery 过滤 DropDownList 中的选项

    我有 2 个 DropDownList 第一个 DropDownList 有 4 个选项 第二个 DropDownList 有 20 个选项 我想要一个选项value 1在第一个 DropDownList 中选择我在第二个 DropDown

随机推荐

  • 序列化字典时保留大小写

    我有一个 Web Api 项目 配置如下 config Formatters JsonFormatter SerializerSettings ContractResolver new CamelCasePropertyNamesContr
  • MDbg - 调试器的协议与被调试者不兼容

    我正在使用 MDbg 检索进程的应用程序域中列出的所有程序集的列表 每当我尝试将进程附加到 MDbgEngine 时 我都会收到以下异常消息 调试器的协议与被调试者不兼容 HRESULT 异常 0x8013134B 我是否遗漏了某些内容或错
  • 如何将 pdf 文件转换为 CSV 文件?

    我想将 PDF 文件转换为 CSV 文件 我为此使用 iText 库 该程序运行良好 但输出不是所需的格式 所有数据都位于 csv 文件的第一行 输出应该与 pdf 文件完全相同 意味着带有换行符 请帮忙 提前致谢 Document doc
  • 通过图形 API 获取所有用户及其上次登录信息

    我正在尝试导出所有用户数据 包括上次登录日期 我正在关注这篇文章 https morgantechspace com 2021 09 find last login date for all azure ad users using pow
  • 将派生类型与过程从模块放置到子模块

    我需要一些有关使用子模块的帮助 我的目的是使用一个子模块来表示来自父模块的特定派生类型 并且我想将派生类型的整个声明放入子模块中 例如 这是我想要转换的示例代码 MODULE PARENT MODULE IMPLICIT NONE TYPE
  • 如何知道给定的DLL是否被给定的进程加载? [复制]

    这个问题在这里已经有答案了 可能的重复 如何以编程方式获取 DLL 依赖项 在 Windows 上 在 C 程序中 我想知道给定的 DLL 我知道路径 是否由给定的外部进程 我知道 exe 的路径 使用 win32 函数加载 必须能够列出进
  • ObjectContext.GetObjectType(e.GetType()) 不返回 POCO 实体的实体类型

    The ObjectContext GetObjectType 方法应该返回 与指定类型的代理对象关联的 POCO 实体的实体类型 那么为什么在我的代码中它只返回代理呢 我正在使用实体框架 6 候选版本 Soft delete var e
  • 如何使在网络 A 框架中动态生成的实体可点击?

    我正在使用网络 A 框架在加载页面时生成一个新实体 我想在这些实体上添加一些功能 例如悬停 单击等 我尝试使其可单击 但没有成功 function rigClick console log Entity Clicked
  • 访问 PHP 函数中的全局变量

    根据大多数编程语言的作用域规则 我可以访问在函数内部定义的变量 但为什么这段代码不起作用 输出是 为了解决所提出的问题 它不起作用 因为您需要声明将在函数本身中访问哪些全局变量 data My data function menugen g
  • Python 中的 Selenium 单元测试——我的日志文件在哪里?

    因此 我将一些单元测试从 Selenium IDE 导出到 Python 现在我正在尝试调试一些东西 我注意到 Selenium 使用logging模块 有一个特定的行selenium webdriver remote remote con
  • Firefox 中的隐藏滚动条(允许滚动但没有滚动条)

    我想创建一个能够滚动但不显示滚动条的 div 我已经找到了 Webkit 的解决方案 如下 但是如何在其他浏览器中完成此操作 我宁愿避免使用 JavaScript 插件 希望找到 CSS 或供应商特定的解决方案 网络套件解决方案 photo
  • fseeko,fseeko64; ftello、ftello64 Visual C 等效项

    有人可以帮助我告诉我 fseeko 的 Visual C 等价物是什么吗 fseeko64 ftello ftello64 谢谢 没有返回 使用 off t 的函数 如果您需要 64 位位置 可以使用 fseeki64 ftelli64
  • 在Java中解析“2010年1月10日”格式的日期? (使用序数指标,st|nd|rd|th)

    我需要用Java解析 2010年1月10日 格式的日期 我怎样才能做到这一点 如何处理序数指标 the st nd rd or th跟踪天数 这有效 String s January 10th 2010 DateFormat dateFor
  • 查找对象的所有属性和子属性

    有时我想知道一个对象是否具有我正在寻找的属性 但有时一个对象有很多属性 可能需要一些时间才能找到它并进行调试 如果我可以编写一个函数来查找字符串中的所有属性及其值 那么我可以将该字符串粘贴到记事本中 并使用记事本具有的查找功能查找我正在查找
  • 如何解压Google AppEngine批量下载器编写的sqlite3数据库

    我需要下载应用程序数据存储区中相当大 多 GB 实体的所有实例 我有足够的磁盘空间来存储实体的数据 但不足以存储批量下载程序作为 SQLite 数据库检索的原始数据and下载程序在应用我的bulkloader yaml 文件中指定的转换后写
  • android_build.sh 在构建 ffmpeg 库时出错

    我正在尝试构建 ffmpeg 库 下面给出了我的 android build sh bin bash NDK C Users Benzatine Downloads android ndk r10e SYSROOT NDK platform
  • KDB:在两个列表中应用二元函数

    考虑一个函数F x y 生成一个表 我还有两个清单 xList x1 x2 x3 and yList y1 y2 y3 进行简单逗号连接的最佳方法是什么F x1 y1 F x1 y2 F x1 y3 F x2 y1 从而产生一张大桌子 您已
  • 错误“函数参数太少”

    我在以下代码片段中遇到错误 Too few arguments to function showtbl GetTabellen ns 0 passed in abcde folder php php on line 153 and exac
  • C# 中是否有像 Java 中那样的 splitByCharacterType 方法?

    Java中有一个方法按字符类型分割例如 需要一个字符串0015j8 并将其分成 0015 j 8 c 中有这样的内置函数吗 如果不是 我将如何构建一个函数来执行此操作 public static IEnumerable
  • ror 中使用 Paperclip 进行多次上传

    我正在使用回形针上传一栋建筑物的一张照片 http www youtube com watch v KGmsaXhIdjc我已经用这种方法做到了 但我决定将多张照片上传到一栋建筑 我可以使用回形针来做到这一点还是必须更改它并使用 jQuer