Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何为成功登录到应用程序后可以更新的用户模型创建表单_Ruby On Rails_Ruby_Ruby On Rails 4_Devise - Fatal编程技术网

Ruby on rails 如何为成功登录到应用程序后可以更新的用户模型创建表单

Ruby on rails 如何为成功登录到应用程序后可以更新的用户模型创建表单,ruby-on-rails,ruby,ruby-on-rails-4,devise,Ruby On Rails,Ruby,Ruby On Rails 4,Devise,要求:我需要创建一个应用程序,用户可以登录,可以更改该页面的背景颜色,可以更改页面的字体,并且应该在会话中保持不变。所以我试图创建一个表单,它接受来自用户的属性,并可以保存在数据库中。我正在使用Desive进行身份验证 我如何为成功登录应用程序的用户创建表单(身份验证由Desive gem完成,因此用户表已经存在),并且在提交表单后,这些属性应该在用户表中更新。如有任何建议,将不胜感激 Q1.此表单的控制器和视图的名称应该是什么 问题2。如何定义路线 第三季度。控制器是否应具有更新操作以使用表单

要求:我需要创建一个应用程序,用户可以登录,可以更改该页面的背景颜色,可以更改页面的字体,并且应该在会话中保持不变。所以我试图创建一个表单,它接受来自用户的属性,并可以保存在数据库中。我正在使用Desive进行身份验证

我如何为成功登录应用程序的用户创建表单(身份验证由Desive gem完成,因此用户表已经存在),并且在提交表单后,这些属性应该在用户表中更新。如有任何建议,将不胜感激

Q1.此表单的控制器和视图的名称应该是什么

问题2。如何定义路线

第三季度。控制器是否应具有更新操作以使用表单中存在的额外属性更新用户表

谢谢。如果我遗漏了一些需要提供的信息,请在下面进行评论。你可以建议我,如果你认为这可以实现在更容易的方式也

  • 你要什么都行。听起来好像你只是更新了用户属性,所以我只会使用用户更新操作

  • 资源:用户,仅:[:更新,:编辑]#和任何其他用户路由

  • ??见1

  • 此外,您还需要确保用户只能编辑自己的帐户。在before操作中,您将要添加

    重定向到根路径,除非当前用户==user\u您正在编辑

  • 创建一个名为
    UserPreferences
    的模型,该模型属于:user,为该模型赋予属性“background\u color”,等等
  • 向用户添加语句
    有一个:用户首选项
  • 像任何Rails模型一样,为prefs创建一个只能由当前用户访问的表单
  • 使用当前_user.user_首选项引用这些值,可以通过在用户中放置别名方法来增强此功能,例如:

    class User < ActiveRecord::Base
    
        def background_color
           self.user_preferences.background_color
        end
    end
    
    class用户

  • 您是否考虑过创建用户后要编辑的属性是不同的模型?例如,您是否真的在创建用户首选项?添加一个新的脚手架可能会简化这个问题。新模型不会“花费”任何东西。@JoeEssey No该属性仅适用于登录到应用程序且仅属于用户模型的用户。我为用户创建了迁移并在表中添加了属性,现在我需要创建一个表单,从表单中获取这些属性并保存在用户表中。希望我能给你答案。我喜欢乔的答案,其实是电子人。创建用户时,该用户所需的所有属性都应存在于该表单中。您可以添加任何您需要的扩展设计。也许这就是你真正想要的?更好的是,你讨论的领域到底是什么?我会想,如果这不是用户创建的一部分,为什么不在另一个模型中使用它。@JoeEssey ok guys让我澄清一下,要求是:我需要创建一个应用程序,用户可以登录,可以更改该页面的背景色,可以更改页面的字体,并且应该在会话中保持不变。所以我试图创建一个表单,它接受来自用户的属性,并可以保存在数据库中。我正在使用Desive进行身份验证。如果你需要更多的信息,请告诉我。我已经多次发布这个问题,但没有收到任何有效的解决方案,所以请指导我。@cyborg,我并不想假设我已经提供了最好的答案,但我将传授一些在我开始这里时与我分享的知识。小心XY问题:让我试试这个,如果我成功了,我会更新你,否则很快就会出现错误报告。:)被调谐。。。顺便说一句,感谢您的努力,使用“委派”会更好。i、 e.类似委托的调用:background\u color,:background\u color=to::user_preferences@Austio,谢谢,这是我第一次听说在Rails中使用delegate@JoeEssey,np很高兴它能帮助你:)谢谢你的建议,我正在尝试。将很快更新