2012-07-31 92 views
0

當我嘗試運行我的應用程序以保存登錄名和密碼的詳細信息時,出現ActiveModel :: MassAssignmentSecurity :: Error錯誤。 得到了以下錯誤ActiveModel :: MassAssignmentSecurity

不能大規模指派保護的屬性:名稱,密碼,password_confirmation,鹽 應用程序/控制器/ users_controller.rb:43:在new' app/controllers/users_controller.rb:43:in打造」

這裏是從代碼控制文件

class UsersController < ApplicationController 
    # GET /users 
    # GET /users.json 
    def index 
    @users = User.all 

    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render json: @users } 
    end 
    end 

    # GET /users/1 
    # GET /users/1.json 
    def show 
    @user = User.find(params[:id]) 

    respond_to do |format| 
     format.html # show.html.erb 
     format.json { render json: @user } 
    end 
    end 

    # GET /users/new 
    # GET /users/new.json 
    def new 
    @user = User.new 

    respond_to do |format| 
     format.html # new.html.erb 
     format.json { render json: @user } 
    end 
    end 

    # GET /users/1/edit 
    def edit 
    @user = User.find(params[:id]) 
    end 

    # POST /users 
    # POST /users.json 
    def create 
    @user = User.new(params[:user]) 

    respond_to do |format| 
     if @user.save 
     format.html { redirect_to @user, notice: 'User was successfully created.' } 
     format.json { render json: @user, status: :created, location: @user } 
     else 
     format.html { render action: "new" } 
     format.json { render json: @user.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

    # PUT /users/1 
    # PUT /users/1.json 
    def update 
    @user = User.find(params[:id]) 

    respond_to do |format| 
     if @user.update_attributes(params[:user]) 
     format.html { redirect_to @user, notice: 'User was successfully updated.' } 
     format.json { head :no_content } 
     else 
     format.html { render action: "edit" } 
     format.json { render json: @user.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

    # DELETE /users/1 
    # DELETE /users/1.json 
    def destroy 
    @user = User.find(params[:id]) 
    @user.destroy 

    respond_to do |format| 
     format.html { redirect_to users_url } 
     format.json { head :no_content } 
    end 
    end 
end 

回答

2

搶答Stack Overflow和學分Damien Mathieu

在你的模型,你需要添加致電attr_accessible致電。

例如:

class User < ActiveRecord::Base 
    attr_accessible :tags_attributes 
end 

如果你已經調用它一次,您可以此字段中添加作爲方法的參數,或者撥打第二個電話。兩種選擇都是相同的。

必須指定所有可訪問的參數直到幾個月纔是默認值。 本指南已更新,以反映默認的更改。但新版本尚未部署,這就是爲什麼沒有指定。

+0

感謝您的幫助 – Rubyuser 2012-07-31 22:12:41

0

我想你忘了在模型中添加attr_accessible參數。查看Rails API瞭解更多關於attr_accessbile及其保護的信息。

0

像waldyr.ar說,你也可以使用attr_protected

相關問題