【问题标题】:In carrierwave, using simple_fields_for, iterating on a symbol (:pictures), how do I find the symbol for the image URLs?在carrierwave中,使用simple_fields_for,迭代符号(:图片),我如何找到图像URL的符号?
【发布时间】:2012-07-20 06:56:55
【问题描述】:

我有一个_form,它使用simple_fields_for 呈现另一个表单。一切正常,除了我无法弄清楚包含不同 URL 的符号,我特别想要拇指 URL。

例如,picture.image_uploader_url — 但我没有实际对象,只有正在迭代的 :pictures 符号。到目前为止,:image_uploader_url.to_s 没有提供任何有用的信息,我意识到这是因为它总是只会给出符号名称。

超级形式:

<%= simple_form_for(@project) do |f| %>
[...]
    <%= f.simple_fields_for :pictures do |builder| %>
            <%= render "pictures/form", f: builder %>
[...]

子表单(图片/_form):

<% unless [:image_uploader_url].nil? or [:image_uploader_url].empty? %>
    <%=  image_tag(:thumb_url.to_s) %>
<% end %>
<%= f.input :name %>
<%= f.input :description %>
<%= f.input :image_uploader, as: :file %>
<%= f.hidden_field :image_uploader_cache %>

我一般如何知道我可以访问哪些符号以及如何使用它们?也许我没有?

编辑:我没有“图片”可以使用,只有“:图片”,我正在努力寻找我能从中得到什么(即图片有一个 image_uploader,我可以得到 image_uploader_url(:thumb ) 但我不能用符号来做到这一点,也不知道如何获得当前迭代的图片)。

【问题讨论】:

    标签: ruby ruby-on-rails-3 carrierwave symbols simple-form


    【解决方案1】:

    要获取picture 的缩略图网址,只需执行以下操作:picture.thumb.url。要获取原始网址,picture.url 就可以了。

    【讨论】:

    • 我得到了那部分 :) 我的问题是我没有图片可以使用,只有 :pictures,正在迭代,有没有办法在迭代中获取当前图片?还是我需要迭代 some_object_foo.pictures ?感谢您的帮助!
    • 你能提供你正在进行迭代的代码吗?
    • 绝对!我更新了代码,这是你要找的吗?再次感谢您的帮助!
    • 你能访问一张图片吗,比如说,使用@project.pictures.first.url
    • 是的,但如果我在其他地方没有 @project,我无法从 :pictures 中得到它。
    【解决方案2】:

    据我所知,没有办法找到与 :pictures 符号相关的单个图片。我最终只是废弃了符号并传递了局部变量(我试图避免让控制器直接提供更多信息)。

    我仍然没有满意的答案,但这是我能想到的最好的答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-10
      • 2017-12-29
      • 1970-01-01
      • 2020-11-22
      • 2016-02-27
      • 1970-01-01
      • 2019-04-28
      • 1970-01-01
      相关资源
      最近更新 更多