質問

ビデオシリーズに沿って追跡しています。この作者はROR 4を使って単純なCMSを作成していますが、現在ROR 3.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
.

と件名新しいPARAMS用に作成したプライベートメソッドは、次の

のように見えます。
 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)は、強いパラメータと呼ばれるレール4機能です。あなたがレールに新しいなら私はあなたがこのような将来のバージョンの問題を軽減するために著者が使用するバージョンを使用することをお勧めします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top