2013-03-19 34 views
0

這裏的總導軌noob所以忍受着我。我一直堅持很長一段時間,試圖找出如何創建一個頁面,允許登錄用戶通過文本字段更改用戶模型的某些屬性。例如,我的用戶模型有一些「測量」屬性,我想通過該頁面直接修改。我的用戶模型正在Devise上運行 - 我不確定是否通過直接修改用戶模型來做正確的事情。使用導軌形式修改用戶模型

這是我的控制器。我將它設置爲找到第二個用戶,因爲我只是測試它,看看它是否工作。

class MeasurementsController < ApplicationController 
    def index 
     @person = User.find(2) 
    end 
end 

這裏是我的index.html.erb:

<%= form_for @person do |f| %> 
    <%= f.label :style %>: 
    <%= f.text_field :style %><br /> 
    <%= f.submit "Update"%> 
<% end %> 

然而,吐出了這個錯誤:

NoMethodError in Measurements#index 
undefined method `user_path' 

任何幫助將非常感激。非常感謝提前。真的迷失在這裏。

編輯:這是我的routes.rb:

Contourfw::Application.routes.draw do 
    ActiveAdmin.routes(self) 

    devise_for :admin_users, ActiveAdmin::Devise.config 
    devise_for :users 
    root :to => 'contourfw#landingpage' 
    match "measurements" => "measurements#index" 
    match "styles" => "styles#index" 
end 
+0

爲了得到這個結果。你有註冊用戶,你希望他們能夠在他們登錄後編輯他們的個人資料/屬性? – PericlesTheo 2013-03-19 21:21:31

+0

是的,確切地說。問題是我正在爲每個用戶存儲某些特殊屬性,如度量等。我希望用戶能夠在登錄後更改這些屬性。 – 2013-03-19 21:26:38

+0

爲什麼不創建與編輯配置文件的鏈接呢? – PericlesTheo 2013-03-19 21:28:05

回答

0

它看起來像你需要在你的config/routes.rb中添加一個足智多謀的路線:

resources :users 

更新 默認假設一個名爲users_controller.rb的控制器。如果你想讓它使用上面的控制,修改,爲:

resources :users, :controller => "measurements" 

詳情請參閱http://guides.rubyonrails.org/routing.html#customizing-resourceful-routes

+0

嗯,這樣做得到的形式顯示沒有我以前的錯誤,但試圖提交表格給我一個 「路由錯誤 未初始化的常量UsersController」 – 2013-03-19 20:58:29

+0

我認爲這樣做與我的設計安裝衝突。我的routes.rb中已經有'devise_for:users'。這工作起初,但隨後開始引起一堆其他問題。 – 2013-03-19 21:25:36

+0

在這種情況下,您可能希望將「resources:measurements」指向您的測量控制器,並且在視圖的form_for聲明中,您需要添加另一個參數或使表單提交給該控制器而不是users_controller。 – sockmonk 2013-03-20 12:21:00