0
我有一個bookmark
型號,具有:url
屬性。我需要將它以正確的格式保存在數據庫中:使用http://
或https://
前綴。保存到數據庫之前編輯數據
所以,在bookmarks_controller
我做了一個before_filter
爲create
行動:
class BookmarksController < ApplicationController
before_filter :standardise_urls, only: :create
.
.
.
def create
@bookmark = current_user.bookmarks.build(params[:bookmark])
if @bookmark.save
flash[:success] = "Bookmark created!"
redirect_to root_url
else
render 'static_pages/home'
end
end
.
.
.
private
def standardise_urls
if params[:bookmark][:url] != /https?:\/\/[a-zA-Z0-9\-\.]+\.[a-z]+/
params[:bookmark][:url] = "http://#{params[:bookmark][:url]}"
end
end
end
但它不工作。我希望它添加http://
前綴鏈接,沒有它,當用戶添加它們。但它會繼續向所有創建的鏈接添加前綴。
我認爲錯誤在重複params[:bookmark][:url]
,但我不明白如何解決它。
此外,在控制器中添加此過濾器是否正確?也許它必須在模型級別?或者,當生成視圖時,最好在動態添加前綴,所以我必須把它放在那裏?
非常感謝!