2012-05-20 13 views
1

我在一個視圖中有一個與我的初始表單分開的表單域。我希望使用該應用程序的人員能夠編輯單個字段,而無需提取整個表單。我的代碼如下使用導軌編輯單個表單域

 <%= form_for :user, :url => {:controller => 'users', :action => 'update' } do |f| %> 
      <%= f.text_field :barcode %> 
      <%= submit_tag 'Register' %> 
    <% end %> 

當試圖提交更改到指定的表單字段我收到關於創建方法,我相信一個錯誤。它將我重定向到具有正確ID的用戶控制器,但給我以下錯誤。

Unknown action 
The action '1' could not be found for UsersController 

我試圖從更新創建改變了方法,但後來它帶來了空白表格,我只是想能夠編輯指定的字段,而無需重新創建表單並獲取錯誤。有任何想法嗎?

回答

4

您沒有將用戶對象傳遞給表單。 也嘗試使用路由生成的路徑幫手:

 <%= form_for @user, :url => user_path(@user) do |f| %> 
+1

是'user_path(用戶)'標準的URL爲'user',它可以被省略。 – tokland

+0

非常感謝,這有助於說明我的問題。不僅我在視圖中沒有使用@user變量,而且在錯誤的def語句中有實例變量。這對我工作,謝謝。 –

1
<%= form_for(@user), :url => url_for(:controller => 'users', :action => 'update') do |f| %> 
    <%= f.text_field :barcode %> 
    <%= f.submit, 'Register' %> 
<% end %> 

現在應該工作...

+0

@user變量不是此視圖控制器的一部分。我試圖從帳戶視圖編輯用戶表單。通過用戶has_one賬戶和賬戶belongs_to用戶的關聯。我的帳戶控制器如下: –

+0

嗨..如果您的表單與不同的資源相關,您需要提供該URL。讓我爲你編輯答案... – gabrielhilal

+0

感謝您的幫助,我不得不在我的更新語句中指定我的@user實例變量。感謝您的幫助,這幫了我。 –