Rails表单Image_Tag VS File_Field_tag

时间:2013-05-21 07:13:21

标签: ruby-on-rails ruby forms post controller

我正在制作一张个人资料图片,用户可以从Linkedin获取它或上传它自己的。 当用户从LinkedIn获取时,它通过image_tag显示:

image_tag(Base64::decode64(field_value), :alt => "profile_pic",:id => "profile_pic")

但用户也可以上传图片:

file_field_tag("profile_pic")

这些代码来自apply_helper.rb:

def render_profile_image(field, alt, title)
 if field.nil?
  content_tag(:span, title) + tag(:br) + image_tag("user.png", :alt => alt) + tag(:br) +           \ file_field_tag("profile_pic") + tag(:br) + content_tag(:small, t("apply.create.labels.profile_pic")) + tag(:br)
 else
  field_value = field["VALUE"]
  content_tag(:span, title) + tag(:br) + image_tag(Base64::decode64(field_value), :alt => "profile_pic",:id => "profile_pic") + tag(:br) + \
    file_field_tag("profile_pic") + tag(:br) + content_tag(:small, t("apply.create.labels.profile_pic")) + tag(:br)
 end
end

我希望在此之前这一点很清楚,但是当我申请时,一切都充满了。

在应用控制器中: params["profile_pic"]仅显示file_field_tag中的内容,即使我将其删除,也只呈现image_tag我无法看到的apply_controller中的值。{{1}}

我感谢你的建议。

2 个答案:

答案 0 :(得分:0)

如果对两个不同的字段使用相同的名称,它们将在params数组中具有相同的名称。因此,最好为这两个字段使用单独的名称,例如profile_picprofile_pic_file_info

答案 1 :(得分:0)

我使用hidden_​​field_tag解决了这个问题。

 hidden_field_tag('linkedin_pic',"example.url.com")