2013-03-25 64 views
0

我工作正常,我的看法頁:沒有路由匹配[POST]「/帳號/編輯」

<% 

    me = Users.find(session[:id]) 

%> 
<h1>Edit account</h1> 
<form action="" method="post"> 
Username: <input type="text" name="username" value="<%=me[:username]%>" /> <br /> 
E-mail: <input type="text" name="email" value="<%=me[:email]%>" /><br /> 
<input type="submit" value="Update" /> 
</form> 

但是,當我提交表單我沒有得到任何路由匹配[POST]「/帳號/編輯」

我的控制器:

class AccountController < ApplicationController 
    def edit 
     if params[:username] 
     @out = "Hey" 
    end 
end 
end 

在路線我試圖設置此

post "account/edit" 

它沒有也行,但是當它刷新,所以得到這個會話不起作用:

Couldn't find Users without an ID 

有人可以幫助我

+0

您有更新操作方法嗎? – senfo 2013-03-25 19:23:57

+0

更新操作?我不知道你的意思。我只有這個控制器和視圖。 – jesper 2013-03-25 19:24:24

+0

正確...在控制器中還應該有更新操作。編輯操作呈現編輯表單(HTTP GET)。您還需要一個操作方法來處理實際的更新(HTTP PUT或PATCH,具體取決於您運行的Rails版本)。 – senfo 2013-03-25 19:25:59

回答

1

編輯舊響應:

我認爲,試圖調試你在這裏沒有得到任何地方。關鍵是你的代碼在這裏存在很多問題,而且還不清楚你有什麼與之相互作用的地方。如果您的控制器中沒有設置其他路由並且沒有其他操作,那麼POST與什麼交互?在哪裏創建(或類似)動作,找到用戶獲取用於創建帳戶的用戶ID?

我認爲你需要運行腳手架爲起點

rails g scaffold account attr1:type attr2:type etc. 

這會給你一些固體你可以看看,定製和借鑑。我鼓勵你繼續努力 - 顯然你想學習。祝你好運! :-)

+0

我工作時,我不會發布它。而我不說「Id = 1」,它會獲得會話ID .... – jesper 2013-03-25 19:38:04