2016年11月12日 星期六

第一次碰到實際上開發的案子的心情 part3

第三次是如果再留言的地方有@+人名的話要自動轉成link的功能,不過我做的比較簡單,不用像現在很多SNS一樣,只要你打一個@就會跳出下拉選單讓你選朋友,我寫得要靠自己把朋友名稱打對

比方留言可能是這樣" @telsa UCCU"
一開始我是先想說~恩要先把@+username的地方抓出來,然後把@後面username的取出來去搜尋有沒有這個使用者
這倒是沒啥問題只要

1.split把他們切開
2.在select出有@的地方
3.再把@切掉


2,3是不是覺得有點矛盾?為啥要找出來又把他切掉,其實我當初也這樣想的,但那時是想說我要靠@才有辦法判斷哪一段才是需要轉成link的地方,然後因為要靠他去搜尋看User有沒有這個人

想當然這樣在非菜鳥都會覺得,何不用正規表示式?
於是最後就變成這樣了
/\@([\w\-\.\_]+)\s/


最後要把 @telsa UCCU"(請想像@telsa已經變成link)輸出到view上就好了
..............
但菜鳥般的話當時不太能理解HTML逸出,當然我知道這是為了安全性,不過腦袋卡住就是卡住了,好不容易其他地方搞定了,又卡在別的地方了冏,是很痛苦的心情冏
結果google後我用到了錯誤的東西

html_safe

他是可以做到我希望的效果,但是因為是會用在讓使用者自行輸入的欄位裡,不可以用這種會全部允許的方法(同saw)
rails有提供sanitize,只有讓一些安全的tag可以不要逸出


還有一件事,就是真的要好好看有沒有哪些功能其實別人已經做好helper之類的
不然會浪費自己的時間,雖然helper那麼多有時候真的會沒發現,但是這點蠻重要的


沒有留言:

張貼留言