【问题标题】:Creating a new session or user from a different view/controller从不同的视图/控制器创建新会话或用户
【发布时间】:2011-11-10 03:26:35
【问题描述】:

我正在 Mac OSX 10.6 上创建一个 Rails 应用程序(我想知道如何在 Rails 3.1 和 3.0 中执行此操作)。

我正在使用 PagesController 来处理大部分静态页面,但希望在主页上包含一个注册表单,并在从我的 PagesController 生成的每个页面(主页、关于、联系人、帮助等)。

当表单在给定控制器之外时,我在让表单工作时遇到了一些麻烦 -> 视图。例如,我有一个 SessionsController,然后是视图 (new.html.erb),其中我有一个表单,提交时会创建一个用于登录的新会话。但是,我希望在 SessionsController 之外和属于 PagesController 的视图(即 home.html.erb 或 about.html.erb)上实现相同的表单/功能。我想对注册功能做同样的事情:我想在 home.html.erb 有一个注册表单,而不必将人们发送到 UsersController 中的“新”页面。提交表单时,这似乎是一个简单的重定向操作,但我无法弄清楚这一点。有人能指出我正确的方向吗?

谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 controllers


    【解决方案1】:

    一种选择是将注册表单 (.erb) 文件作为部分文件并将其包含在用户和页面控制器中。

    通过这种方式,您的注册表单可以移植到任何控制器。当表单在保存后发布时,您可以将用户重定向到请求的来源。

    【讨论】:

    • 我会发出什么类型的重定向命令?例如,如果有人从 PagesController 在主页上注册,我将如何使 PagesController 中的“主页”操作将信息从表单传递到 UsersController 中的正确操作以创建新用户?
    • 注册应始终直接转到用户控制器。之后您可以处理重定向。
    • 我明白了,我该如何设置,以便在单独视图中的 PagesController 处理用户时,注册直接转到 UsersController 以创建用户?
    • 让您的注册表单部分将数据发送到 UsersController 以创建用户,然后在创建用户后您可以检查请求的来源。 (可能使用隐藏字段)如果请求来自 PagesController,您可以为它重定向回用户。
    猜你喜欢
    • 1970-01-01
    • 2018-12-08
    • 2015-04-19
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 2010-10-30
    相关资源
    最近更新 更多