1

_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 %>
[...]

サブフォーム (pictures/_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 %>

どのシンボルにアクセスできるか、またそれらをどのように使用するかをどのように知ることができますか? 多分私はそれらを持っていませんか?

編集:私は作業する「画像」を持っていません.「:画像」だけです.シンボルでこれを行うことはできません。また、現在の反復である画像を取得する方法もわかりません)。

4

2 に答える 2

0

のサムURLを取得するには、次のpictureようにしますpicture.thumb.url。元のURLを取得するには、picture.url問題ありません。

于 2012-07-21T02:42:57.213 に答える
0

私が知る限り、:pictures シンボルに関連する個々の画像にアクセスする方法はありません。結局、シンボルを破棄してローカル変数を渡すだけになりました(コントローラーがより多くの情報を直接利用できるようにすることを避けようとしていました)。

私はまだ満足のいく答えを持っていませんが、これは私が思いつくことができる最高のものです.

于 2012-07-26T22:43:42.753 に答える