0.前言
在之前的學習筆記中(7),談到carrierwave的使用,當時我只有值做簡單的上傳此電腦的檔案而已,並沒有附上”Uploading files from a remote location”此功能,
於是自己又開始來嘗試加入此小功能,以還使以為很容易,應該看個youtube教學,貼個code就搞定了,但我錯了,比想像中還複雜,因此我放棄了在accufind操作,
於是從之前的blog檔案來開始實作,所幸的是,後來有成功,但是同要的方式施展在accufind,就是失敗,但最後問了學弟還是解決了,所以寫下此邊學習筆記,以便反思一遍。
1.操作流程:
最主要分成三個部分,model,controller,view
model部分:
就是在models/target.rb加入這一句:
“attr_accecssor :remote_photo_url” 這是根據youtube的教學所跟著做
controller部分:
在controller/targets_controller.rb此檔案中的
params.require(:target).permit(:remote_photo_url)
加入remote_photo_url此參數
view部分:
在new.html.erb中:加入
<%= f.label :remote_photo_url %>
<%= f.text_field :remote_photo_url %>
在show.html.erb中:加入
<%= image_tag(@target.photo_url(:thumb)) %>
2.困難點:
我是了將近有20多次,就是無法存取url的照片,但是從電腦檔案上傳的照片就可以,心裡納悶是否是view的語法有問題,但是也是follow blog的做法,
可是卻不行用,於是我在此問題打轉三小時,也無解。
3.解決點:
最後是詢問學弟,而他指出取消在model部分,的那一行“attr_accecssor :remote_photo_url”,
那麼就可以解決了,但我還是很懷疑,因為在blog中,有這一行卻可以work,簡單來說,還是要去了解這個性質,才有辦法弄通原理,但總結來說,
自己用盡全力思考一個問題後,且再去get答案,這種感覺真的很爽,也覺得很值得,希望能再次多積累這種體驗,讓自己變得更有信心。