所以我从我的parse.com数据库调试了这个值:
<%= debug @activity["image1"] %>
视图中的结果显示它是我期望的文件:
--- !ruby/object:Parse::File
parse_filename: tfss-1c325650-79d2-4d34-ab3b-c62397c7ac9a-image1.jpg
url: http://files.parsetfss.com/0b53rerr13f-42e5-be7ac9a-image1.jpg
我尝试将其添加为我的表单的值,如下所示:
<%= form_for :leads, :url => activities_create_path do |f| %>
<%= f.hidden_field :image, :value => @activity["image1"] %>
<% end %>
在我的控制器中,我尝试像这样保存:
def create
@lead = Leads.new(params[:leads])
if @lead.valid?
lead = Parse::Object.new("Leads")
lead["image"] = params[:leads][:image]
lead.save
redirect_to root_url
end
end
我得到的错误告诉我它无法保存,因为它期待一个文件但是有一个字符串。
我知道该值是一个文件,但我怀疑hidden_fields值最终成为字符串。
有没有办法将hidden_field值转换为字符串?
如果问题1不可能,那么我可以创建一个file_field并设置它的值而无需手动上传图像文件吗?
我真正需要做的是从我的parse.com数据库中获取一个对象的默认图像文件,并将其完全按原样(一个文件)存储回parse.com中的另一个表。
我遇到的问题是我的rails形式,其中文件被转换为字符串。 我的另一个选择是如何抓住同一个图像,该图像实际显示在页面顶部的表格中。
这就是我在文件中显示图片的方式:
<%= image_tag @activity["image1"].url, onerror:"this.style.display='none'" if @activity["image1"].present? %>
然后一些如何使用该图像来模拟将文件添加到file_field。但是,我认为这有点复杂,而且我不想做什么。
我有一个来自parse.com中的一个表的文件,我在rails中读取它,但现在想要获取该文件并对其执行任何操作,然后将其存储回parse.com但在另一个表中。但是正如我上面提到的,hidden_field将文件转换为字符串,但我需要它保持相同的格式。
我希望这一切都有道理。
非常感谢您的帮助。
感谢您的时间。
答案 0 :(得分:1)
Http参数和html字段值将始终像一个字符串。 尝试存储&#39; parse_filename&#39;的值。或者&#39; url&#39;来自隐藏字段中的Parse :: File。在操作方法中,您可以使用提交的路径读取文件。