2013-05-25 28 views
0

我試圖沿着路徑在這篇文章中,我帶領下來繼續:render show page on submit backbone.js + rails + rails-backbone gem::加載ActiveModel :: MassAssignmentSecurity錯誤(Backbone.js的+軌+軌骨幹寶石)

我仍然在試圖找出我在該問題的第一段中描述了什麼。我在螢火蟲控制檯裏亂搞。當我點擊從根頁面提交一切正常工作(應用程序不會導航到新創建的對象顯示頁面)。網址更改爲http://localhost:3000/#/x(其中x是新創建的對象的ID)。當我再次點擊提交時,我得到「500內部服務器錯誤22毫秒」。這個錯誤出現在控制檯>所有窗口中出現了小紅箭頭旁邊那(點擊時)落下的另一部分 - 在與我點擊「HTML」選項卡 - 和我得到這個錯誤:

ActiveModel::MassAssignmentSecurity::Error in UsersController#update 

Can't mass-assign protected attributes: created_at, id, updated_at 

我想我可能找到了這個錯誤的問題 - 我只是不知道該怎麼做來解決這個問題。我想是怎麼回事,是我有兩個不同的控制器(家庭控制器,以及用戶控制器) - 兩者的指數行爲的定義相同的事情,這是我的用戶控制指標的行動:

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 
    ... 
end 

這裏是我的家控制器索引操作:

class HomeController < ApplicationController 
    def index 
    @users = User.all 
    end 
end 

因此,大家可以看到,我想是怎麼回事是,當我點擊提交第一次(從主頁)@users獲取設置和應用程序被導航到新用戶的展示頁面(雖然它不會再次 - 這一切都回到我的第一個問題 - 網址更改,但頁面的內容不,鏈接因爲我的第一個問題在上面)。

在URL更改爲顯示頁面url(不加載內容)後,我嘗試提交另一個具有唯一輸入的用戶窗體,並且出現上述的mass-assign錯誤。這似乎是因爲@users已由家庭控制器設置...所以當它再次從用戶控制器(第二次提交時)被調用時,它不能被分配。

我該如何解決這個問題?我需要家庭控制器和用戶控制器能夠使用@用戶...我想。並且,在這裏綁定一切回到我的第一個問題:render show page on submit backbone.js + rails + rails-backbone gem

我可以在家庭控制器中執行一些操作,將新創建的用戶重定向到顯示頁面(可能在創建,更新方法或用戶控制器中)家庭控制器的索引方法)?這可能解決了我從根頁面重定向到顯示頁面的問題嗎?所有相關的backbone.js(和我的根index.html.erb文件)代碼發佈在我的第一個問題中......請參考它,因爲它會填補你所有的骨幹細節,以及我真正想要的做。

謝謝!

UPDATE

這裏是我的用戶控制器更新操作(錯誤所在據稱來自):

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 

回答

0

你不應該送created_atupdated_at屬性服務器。

你應該檢查你發送的參數,並確保你沒有發送這些參數。

順便說一下,我的其他答案對你有幫助嗎?

+0

哎......胡安我很欣賞你的答案!你在最後一個問題上給出的答案幫助我理解了我做得更好一些......但是,當我單擊根頁面上的提交時,它沒有解決我沒有進入顯示頁面的問題...有任何想法嗎? – ewizard

+0

我會在哪裏發送created_at和updated_at參數?他們不是在我的用戶模型中可訪問的屬性... – ewizard

+0

即時將我的用戶控制器更新行動添加到我的文章...錯誤應該來自那裏。 – ewizard

0

你不應該插入或添加created_at,ID的updated_at這些都是自動生成.......

相關問題