我有下一个正则表达式:
regex = /(?:.be\/|\/watch\?v=|\/(?=p\/))([\w\/\-]+)/
例如,我有下一个YouTube网址:https://youtu.be/7FcfSxrRU
。在这个正则表达式之后我做了:
givenUrl = params[:url].match(regex)[0]
newUrl = givenUrl.split('.be/')[1]
这段代码给了我结果。 newUrl
是我需要的,但当我尝试将其保存为
params[:url] = newUrl
我收到错误,
undefined method []' for nil:NilClass`
表示givenUrl。
我确实尝试将其保存在这里:
permitted = params.permit(:url, :title, :description, :post_type, :category_id)
有什么问题?为什么我会收到此错误?
更新 我的def我允许参数并添加到数据库表
def check_params
regex = /(?:.be\/|\/watch\?v=|\/(?=p\/))([\w\/\-]+)/
givenUrl = params[:url].match(regex)[0]
newUrl = givenUrl.split('.be/')[1]
params[:url] = newUrl
permitted = params.permit(:url, :title, :description, :post_type, :category_id)
end
错误出现在下一行:
givenUrl = params[:url].match(regex)[0]