Html 不使用erb(表单)rails上载图像

Html 不使用erb(表单)rails上载图像,html,ruby-on-rails,ruby,Html,Ruby On Rails,Ruby,我想知道是否有一种方法可以在rails 4中不使用erb上传图像。我在模型中的引号中有html代码(这样我就可以在创建页面时将其用作默认值)。所以我不能把erb放在引号里,因为如果我这样做的话,它会显示为erb代码,而不是实际视图。(即上传图像表单。它将显示为实际的f.image_标签,而不是实际的上传按钮) 因此,我只是想看看是否有另一种方法,我可以实现图像上传到报价,将不需要再培训局。但是,使用Rails 4。如果字符串中包含纯HTML代码,并且只希望显示它,则需要在视图中调用.HTML\u

我想知道是否有一种方法可以在rails 4中不使用erb上传图像。我在模型中的引号中有html代码(这样我就可以在创建页面时将其用作默认值)。所以我不能把erb放在引号里,因为如果我这样做的话,它会显示为erb代码,而不是实际视图。(即上传图像表单。它将显示为实际的f.image_标签,而不是实际的上传按钮)


因此,我只是想看看是否有另一种方法,我可以实现图像上传到报价,将不需要再培训局。但是,使用Rails 4。

如果字符串中包含纯HTML代码,并且只希望显示它,则需要在视图中调用.HTML\u safe,如:

'<div id="foo">bar</div>'.html_safe()
并将其添加到字符串中。可能通过JS也添加了一些更精细的验证和选项,这将是一种痛苦的添加方式——一种方法是使用代码向html添加脚本标记

但是,如果您的字符串已经包含这样的代码,并且您正在询问它的工作方式,那么您需要向调用者添加一个eval,例如:

eval('form.image_tag :image')
并不是说这是一种更糟糕的气味,应该不惜一切代价避免

也许最好在section.rb模型中添加一些标志,然后在助手或视图中使用这些标志来呈现html;例如,a是否已上传?字段,然后可以执行如下操作:

if @section.has_upload?
  form.image_tag :imagem
end

在我的模型中,引用了
html代码
您的意思是将html作为字符串放在控制器的变量中?我相信这是非常糟糕的做法。。。我不太理解你问题的其余部分,特别是“不使用erb”:你是说使用静态HTML?或者在erb中不使用rails form_for&friends标签?我的意思是……我有我的模型(sections.rb)。在中,有html代码在创建页面时创建“默认布局”。html是一个字符串,是的。所以你应该知道,如果你把erb代码放在一个sting中,它会显示为那个erb代码,而不是代码应该显示的视图。所以,是的,我不想使用“form.image\u标签:image”。我在想,也许像某种“clickable”类或其他什么?我不知道如何在不下载整个编辑器gem的情况下实现它。我会尝试使用.html\u safe,我想我可能已经尝试过了,但我会再次检查。我还将检查第二部分。谢天谢地,这里没有人真正回答过我的任何问题(这可能是因为他们太困惑了,因为我是RoR新手)。他们通常只是在评论中留下一个问题,就这样,否则他们会投票否决/搁置。谢谢你,伙计!不客气!我对你的问题有点困惑,但希望这些想法能帮助你。如果你无意中发现了一个更具体的问题,请随时再问。等一下,别担心..我明白了…所以我(我的愚蠢是一个新的借口)会把什么放在“id”位置?喜欢图像吗?或者什么?应该有一个空间,它们应该分开,并且在升华中使用相同的颜色(取决于您使用的颜色模式)。请注意,这将创建一个简单的文件上载,您需要进一步调查rails image_标记在幕后到底做了什么,如自定义验证等。当您使用image_标记:image时,创建的字段有name=“image”和id=“image”,如果您试图模仿此行为,则需要添加这两个字段。当然,如果您不使用id,您可以去掉它,但是一旦表单提交到服务器上处理,就会使用名称。未提交匿名字段。
if @section.has_upload?
  form.image_tag :imagem
end