检查 rails ruby 中提交的表单值
Check form submitted values in ruby on rails
在我的 rails 应用程序中,我在 /addfiles
上有一个表单,用户可以在其中的文本框中添加文件路径,并将此表单提交给 /remotefiles
我创建了一条路线match '/remotefiles' => 'main#remotefiles'
并在主控制器中发挥作用
def remotefiles
render layout: false
end
并在views/main
中添加remotefiles.html.haml
如何在远程文件上显示这些提交的值,我认为可以用 render
完成,但不确定如何使用它来传递表单值并在视图中显示它们。
有没有办法像 php print_r
函数一样在 rails 上检查 ruby 中的表单数据?
您的表单数据通过 params
哈希输入。最简单的回应方式是
# MainController
def remotefiles
render json: params
end
如果您的表单包含名为 foo
和 bar
的字段,您将看到这些字段以及一些参数 Rails 添加:
{
"foo": 1,
"bar": 2,
"controller": "Main",
"action": "remotefiles"
}
如果你想把它们渲染成一个真正的模板,把HTML写成app/views/main/remotefiles.html.erb
。 Rails 默认情况下会呈现一个与您的控制器和操作匹配的模板,或者如果您想要一个不同的模板,您可以指示 Rails 到 render "path/to/other/template"
。您的模板也可以访问 params
,但将数据传递给它们的更典型方法是在控制器中设置实例变量。
# MainController
def remotefiles
@foo = params[:foo]
@bar = params[:bar]
end
# app/views/main/remotefiles.html.erb
<strong>Foo</strong> is <%= @foo %>
<strong>Bar</strong> is <%= @bar %>
最后,如果您实际上不想将表单数据呈现回浏览器,只需在开发过程中检查它,Rails.logger
会将其打印到您的服务器日志中。
# MainController
def remotefiles
Rails.logger.info(params[:foo], params[:bar])
end
您应该仔细阅读 Rails 的工作原理 - 入门指南非常清晰且很有帮助。这里是 the one on rendering.
在我的 rails 应用程序中,我在 /addfiles
上有一个表单,用户可以在其中的文本框中添加文件路径,并将此表单提交给 /remotefiles
我创建了一条路线match '/remotefiles' => 'main#remotefiles'
并在主控制器中发挥作用
def remotefiles
render layout: false
end
并在views/main
中添加remotefiles.html.haml
如何在远程文件上显示这些提交的值,我认为可以用 render
完成,但不确定如何使用它来传递表单值并在视图中显示它们。
有没有办法像 php print_r
函数一样在 rails 上检查 ruby 中的表单数据?
您的表单数据通过 params
哈希输入。最简单的回应方式是
# MainController
def remotefiles
render json: params
end
如果您的表单包含名为 foo
和 bar
的字段,您将看到这些字段以及一些参数 Rails 添加:
{
"foo": 1,
"bar": 2,
"controller": "Main",
"action": "remotefiles"
}
如果你想把它们渲染成一个真正的模板,把HTML写成app/views/main/remotefiles.html.erb
。 Rails 默认情况下会呈现一个与您的控制器和操作匹配的模板,或者如果您想要一个不同的模板,您可以指示 Rails 到 render "path/to/other/template"
。您的模板也可以访问 params
,但将数据传递给它们的更典型方法是在控制器中设置实例变量。
# MainController
def remotefiles
@foo = params[:foo]
@bar = params[:bar]
end
# app/views/main/remotefiles.html.erb
<strong>Foo</strong> is <%= @foo %>
<strong>Bar</strong> is <%= @bar %>
最后,如果您实际上不想将表单数据呈现回浏览器,只需在开发过程中检查它,Rails.logger
会将其打印到您的服务器日志中。
# MainController
def remotefiles
Rails.logger.info(params[:foo], params[:bar])
end
您应该仔细阅读 Rails 的工作原理 - 入门指南非常清晰且很有帮助。这里是 the one on rendering.