我正在尝试为网站创建照片上传功能,有两种上传方式。一种是通过指定远程URL链接,另一种是通过从本地计算机上载。所以这要求我写两个部分。什么是一种有效的方法来创建一个photo_upload视图,其中包含两个指向上述两种情况的链接,使用相同的照片控制器?我坚持如何将重定向信息传递给控制器。理想情况下,当我点击其中一个链接时,我想设置一个名为upload_source的photocontroller变量,但我不知道如何使用link_to传递这样的变量,哪里是定义这个布尔变量的最佳位置。
一些代码示例:
从视图中看:
<h2>Upload a Photo: Step 1 of 3</h2>
<br>
<h3><strong>Where is your photo?</strong></h3>
<br>
<div class="button_border">
<a href="add_photo_web">On the Web</a>
</div>
<div class="button_border">
<%= link_to "On My Computer", new_photo_path%>
</div>
</div>
来自photoController(不确定这是否正确):
helper_method :get_source, :set_source
private
def set_source=(_source)
@@source = _source
end
def get_source
@@source
end
非常感谢帮助!
谢谢大家的慷慨帮助!我一直对stackoverflow的效率感到惊讶。
答案 0 :(得分:2)
如果我理解正确,你可以通过像这样定义链接来实现你想要的东西:
link_to "On my computer", new_photo_path, :source => "local"
link_to "Remote source", new_photo_path, :source => "remote"
然后在控制器中你可以有类似的东西:
def new
if params[:source] == "local"
render :partial => 'local'
else
render :partial => 'remote'
end
end
答案 1 :(得分:1)
我知道你没有要求获得用户体验帮助,但我会考虑放弃这第一步,只是显示新照片表单,其中包含您最常用的字段(文件上传字段或文本字段) URL)。
然后有一个链接切换到另一个选项...但是该链接只是通过javascript替换当前字段。
看看Tumblr如何上传照片......同样的原则。