sql >> データベース >  >> NoSQL >> MongoDB

Rails付きのMongoid、attr_accessible->メソッドが見つかりません

    わかりました、私は問題を見つけました。

    まず、Rails 4を使用していると仮定します。このエラーが発生する理由は、attr_protectedであるためです。 およびattr_accessible Rails 4から削除され、独自の宝石に配置されました。 Railsは現在、新しい保護モデルを奨励しています。これについては、README で読むことができます。 。古い動作を引き続き使用する場合は、 protected_attributesgem を含める必要があります。 。お役に立てば幸いです。

    編集:これは、Rails 4にアップグレードするユーザーに共通の問題である可能性が高いため、以下に説明を追加しました。

    attr_accessibleを引き続き使用する場合 、つまりRails 3の方法では、gem protected_attributesを追加するだけです。 あなたのGemfileに。

    Rails 4の方法で作業を開始したい場合は、attr_accessibleを使用しないでください。 。代わりに、属性権限ロジックをコントローラーに移動する必要があります。次に例を示します:

    class UsersController < ApplicationController
      def create
        # Using params[:user] without calling user_params will throw an error because 
        # the parameters were not filtered. This is just some Rails magic.
        @user = User.new user_params
        if @user.save
          # Do whatever
        else
          render action: :new
        end
      end
    
      private
      def user_params
        # params.require(:user) throws an error if params[:user] is nil
    
        if current_user.nil? # Guest
          # Remove all keys from params[:user] except :name, :email, :password, and :password_confirmation
          params.require(:user).permit :name, :email, :password, :password_confirmation
        elsif current_user.has_role :admin
          params.require(:user).permit! # Allow all user parameters
        elsif current_user.has_role :user
          params.require(:user).permit :name, :email, :password, :password_confirmation
        end
      end
    


    1. Django認証Mongodb

    2. Mongoでコレクションを説明するにはどうすればよいですか?

    3. CentOS8へのRedisのインストール

    4. Mongo stats()関数によって表示されるサイズとstorageSizeの違いは何ですか