【问题标题】:Handling Parameters in Rails在 Rails 中处理参数
【发布时间】:2016-09-07 10:57:53
【问题描述】:

如何验证从视图传递给控制器​​的参数。以下是我的视图文件。

index.html.erb:

<html>
<body>
    <center> <h1> Login form </h1> </center>
    <form action='/login/auth' method='GET'>
        Name: <input type="text" name="username" width=20>
        Password: <input type="password" name="password" width=20>
        <input type="submit" value="login">
    </form>
</body>
</html>

以上是客户端调用'/login'控制器时在客户端渲染的视图文件。因此,一旦值被填充并且 按下提交按钮,数据将传递给“/login/auth”操作。使用 auth 方法如何处理从 客户端。我的控制器文件是,

login_controller.rb:

ass LoginController < ApplicationController
  def auth

  end
end

【问题讨论】:

  • 请求参数可通过控制器操作中的params 方法获得。 params[:username]
  • 验证什么?你有验证它的方法吗?或者您只是想知道如何读取发送到控制器的参数?您可以在 params[:username]params[:password] 中找到它们。
  • 虽然要实现身份验证,但您应该采用久经考验的解决方案,而不是自己动手。例如,devise 是一个非常受欢迎的选择。
  • Rails 的has_secure_password 有什么问题?

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 model-view-controller


【解决方案1】:

您可以从params[:username]params[:password中获取"username""password"参数]

为了简单和安全的身份验证过程,您可以使用广泛用于身份验证的 "devise" gem。它易于配置并默认提供登录和注册视图页面。

要关注的网址https://github.com/plataformatec/devise

【讨论】:

    【解决方案2】:

    类似这样的:

    if params[:username].present? && params[:password].present? 
      #do something
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-14
      • 2019-07-19
      • 1970-01-01
      • 1970-01-01
      • 2017-07-17
      • 2015-02-09
      • 2023-03-27
      • 1970-01-01
      相关资源
      最近更新 更多