Rails:从表单中嵌入和检索数组
Posted
技术标签:
【中文标题】Rails:从表单中嵌入和检索数组【英文标题】:Rails: embedding and retrieving array from form 【发布时间】:2011-07-29 19:54:57 【问题描述】:我被 Ruby、Rails 和 html 语法绊倒了。希望一些 Rails 忍者可以帮助我解决可能是微不足道的问题....
发帖 has_many
照片
照片有一个字符串:image
属性
在帖子的_form.html.haml
中,我想为与帖子关联的每张照片嵌入(在hidden_field
中)image
属性的内容......然后在提交表单时将其取回。我可以通过 A) 添加 one hidden_field
for each photo.image
或 B) 创建单个 array 包含所有关联的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 请求返回,它就变成了数组的字符串表示形式:[/uploads/tmp/20110729-1216-15902-2013/Before_Green_Flash.JPG, /uploads/tmp/20110729-1216-15902-5934/Before_Green_Flash2.JPG]
,因此不回复each
。
我们将不胜感激任何一种或两种情况的帮助!
【问题讨论】:
【参考方案1】:对于方法 a,为什么不:= f.hidden_field photo.image
【讨论】:
以上是关于Rails:从表单中嵌入和检索数组的主要内容,如果未能解决你的问题,请参考以下文章