簡體   English   中英

Ruby on Rails Web應用程序控制器生成錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM