[英]ruby on rails web app controller generates error
我正在觀看一個視頻系列,作者在其中使用RoR 4創建了一個簡單的CMS,但是我目前安裝了RoR3.x。 我將所有代碼都跟在了“ T”后面,但是當我嘗試在簡單的CMS中創建一個簡單的主題時,出現了錯誤。 所以我檢查了log / production.log
我收到以下錯誤, TypeError (no implicit conversion of Symbol into String):
控制器代碼如下所示:
def create
# Instantiate a new object using form parameters
# the below line should work with rails v3.x
# @subject = Subject.new(params[:subject])
@subject = Subject.new(subject_params)
# Save the object
if @subject.save
# add flash hash
flash[:notice] = "Subject created successfully."
# if save succeeds, redirect to the index action
redirect_to(:action => 'index')
else
# if save fails, redisplay the form so user can fix problems
render('new')
end
end
我為主題新參數創建的私有方法如下所示
private
def subject_params
# same as using "params[:subject]", except that it:
# - raises an error if :subject is not present
# - allows listed attributes to be mass-assigned
params.require(:subject).permit(:name, :position, :visible)
end
作者告訴您,您需要將@subject = Subject.new(subject_params)
更改為@subject = Subject.new(params[:subject])
。
params.require(:subject).permit(:name, :position, :visible)
是Rails 4的一個功能,稱為Strong Parameters 。 如果您不熟悉Rails,建議您使用作者使用的版本來緩解此類將來的版本問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.