Rails:从表单中嵌入和检索数组

时间:2011-07-29 19:54:57

标签: ruby-on-rails arrays ruby-on-rails-3 parameters

我在Ruby,Rails& amp; HTML语法。希望一些Rails忍者可以帮助我解决可能是一个微不足道的问题......

发布 has_many 照片

Photo有一个字符串:image属性

在帖子的_form.html.haml中,我想(在hidden_field中)为与帖子关联的每张照片嵌入image属性的内容...然后将其取回提交表单时。我可以通过以下方式执行此操作:A)为每个 hidden_field 添加一个 photo.image B)创建一个< strong>数组包含所有关联的photo.image s。

我惹恼了如何最好地嵌入这个...(A)或(B)这两个我都没有完全完善。

# _form.html.haml:
  = form_for @post do |f|

    - if @post.photos.any?
      - @post.photos.each do |photo|        -# (A)
        = f.hidden_field :image_cache       -# (A)
      = f.hidden_field :images_cache        -# (B)
    = f.file_field :photos, :multiple => true

  .actions
    = f.submit 'Save'


#post.rb  (A)
  def image_cache
    self.photos.any? ? photos.first.image : nil   -# works with `first` 
                                                  -# but not sure how to 
                                                  -# pass id of others?!?
  end


#post.rb:  (B)
  def images_cache
    photos.map { |i| i.image }
  end

问题(A)是我不知道如何将photo传递回Post模型以返回image_cache属性?!? f.hidden_field :image_cache(photo)不起作用

问题(B)是Post模型返回的images_cache是一个数组,但是一旦嵌入HTML页面并由以下的post请求返回,它就变成了数组的字符串表示形式:{{1因此不响应[/uploads/tmp/20110729-1216-15902-2013/Before_Green_Flash.JPG, /uploads/tmp/20110729-1216-15902-5934/Before_Green_Flash2.JPG]

非常感谢任何一种或两种情况的帮助!

1 个答案:

答案 0 :(得分:0)

对于方法a,为什么不:= f.hidden_field photo.image