MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Mongoid w/ Rails, attr_accessible --> Tidak ada metode yang ditemukan

Oke, saya telah menemukan masalahnya.

Pertama-tama, saya berasumsi Anda menggunakan Rails 4. Alasan Anda mendapatkan kesalahan ini adalah karena attr_protected dan attr_accessible telah dihapus dari Rails 4 dan ditempatkan di permata mereka sendiri. Rails sekarang mendorong model perlindungan baru. Anda dapat membaca tentang ini di README . Jika Anda ingin terus menggunakan perilaku lama, Anda harus menyertakan permata protected_attributes . Semoga membantu.

EDIT:Saya telah menambahkan klarifikasi di bawah ini karena ini mungkin merupakan masalah umum dengan pengguna untuk meningkatkan ke Rails 4.

Jika Anda ingin terus menggunakan attr_accessible , yaitu cara Rails 3, cukup tambahkan gem protected_attributes ke Gemfile Anda.

Jika Anda ingin mulai melakukan sesuatu dengan cara Rails 4, Anda tidak boleh lagi menggunakan attr_accessible . Sebagai gantinya, Anda harus memindahkan logika izin atribut ke pengontrol. Ini contohnya:

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - Menghapus Dokumen

  2. apollostack/graphql-server - cara mendapatkan bidang yang diminta dalam kueri dari resolver

  3. Ekspresikan fungsi parameter kueri tak terbatas JS?

  4. Bagaimana seharusnya hubungan banyak ke banyak berikut dimodelkan dalam MongoDB?

  5. Apakah mungkin untuk terhubung ke MongoDB lokal dengan flutter dart?