2015-04-21 47 views
0

要求:我需要創建一個應用程序,用戶可以登錄並可以更改該頁面的背景顏色,可以更改字體的頁面,它應該堅持會話。所以我試圖創建接受來自用戶的這些屬性並可以保存在數據庫中的表單。我正在使用設計進行身份驗證。我怎樣才能創建一個用戶模型,可以在成功登錄到應用程序後更新

如何爲成功登錄到應用程序的用戶創建表單(身份驗證由設計gem完成,因此用戶表已經存在),並且在提交表單時這些屬性應該在用戶表中更新。任何建議將不勝感激。

Q1。該表單的控制器和視圖的名稱應該是什麼? Q2302。如何定義路線。

Q3。控制器是否應該具有更新操作以使用表單中存在的額外屬性來更新用戶表。

謝謝。如果我錯過了一些需要提供的信息,請在下面評論。如果您認爲這可以通過更簡單的方式實現,則可以向我建議。

+1

你有沒有考慮,你希望用戶後編輯屬性是創建一個不同的模型?例如,你是否真的創建了UserPreferences?添加一個新的腳手架可能會簡化這個問題。新車型不會「花費」任何東西。 –

+0

@JoeEssey該屬性僅適用於登錄到應用程序且僅屬於用戶模型的用戶。我爲用戶創建了遷移,並在表中添加了屬性,現在我需要創建表單並從表單獲取這些屬性並保存在用戶表中。希望我給你答案。 – cyborg

+0

我喜歡喬的回答,實際上是電子人。創建用戶時,該用戶所需的所有屬性都應該以該表單的形式存在。您可以添加任何您需要擴展設計。也許這就是你真正想要的?更好的是,你正在討論的領域究竟是什麼?我想如果它不是用戶創建的一部分,爲什麼不在另一個模型中。 – Art

回答

0
  1. 無論你想要什麼。聽起來李克你是剛更新的用戶屬性,所以我只想用用戶#更新動作

  2. 資源:用戶,只有:[:更新,編輯]#,然後其他用戶路徑

  3. ?見1

此外,你會想確保人們只能編輯自己的帳戶。在行動之前,你會想要添加。

redirect_to的root_path除非CURRENT_USER == user_you_are_editing

+0

感謝您的建議,我正在嘗試。我將很快更新 – cyborg

0

我會怎麼做:

  1. 創建一個名爲UserPreferencesbelongs_to :user模型,把這個模型屬性 'BACKGROUND_COLOR',等...
  2. 向用戶添加聲明has_one :user_preferences
  3. 像任何Rails模型一樣,只能由current_user訪問,爲prefs創建表單。
  4. 使用current_user.user_preferences指這些值,可以通過將別名方法的用戶,例如加強這方面的:

    class User < ActiveRecord::Base 
    
        def background_color 
         self.user_preferences.background_color 
        end 
    end 
    
+0

讓我試試這個,如果我成功了會更新你,否則很快就會出現錯誤報告。 :)被調整...順便感謝你的努力 – cyborg

+0

真的更好,只是使用委託。即類似委託的調用:background_color,:background_color = to::user_preferences – Austio

+0

@Austio,謝謝,這是我第一次聽說Rails中的委託! –

相關問題