创建一个提交按钮链接到另一个页面

时间:2015-11-02 01:29:03

标签: ruby-on-rails ruby button hyperlink erb

我正在使用嵌入式红宝石。 所以我有代码:

<%= f.submit "Log in", class: "btn btn-primary" %>

我想在提交输入到文本字段的信息时将此按钮链接到另一页。这可能吗?

如果您需要任何其他信息,请告诉我。感谢

2 个答案:

答案 0 :(得分:2)

表单提交的控制器方法应包含redirect_to whatever_path。

请参阅http://api.rubyonrails.org/classes/ActionController/Redirecting.html

  

redirect_to(options = {},response_status = {})

     

示例:

redirect_to action: "show", id: 5
redirect_to post
redirect_to "http://www.rubyonrails.org"
redirect_to "/images/screenshot.jpg"
redirect_to articles_url
redirect_to :back
redirect_to proc { edit_post_url(@post) }

答案 1 :(得分:0)

  

我希望在提交输入到文本字段

中的信息时,将此按钮链接到另一个页面

是的,但你必须小心你的术语。

不是按钮“提交”,它是表单

HTML表单将其数据发送到“操作”:

<form action="url/for/action" method="" />
</form>

此“操作”是处理数据/请求的URL。

在每个服务器端语言/框架中,都有处理来自HTML的入站数据的功能。为了重定向到另一个网址,您必须首先确保正确处理数据:

#app/controllers/sessions_controller.rb
class SessionsController < ApplicationController
   def create
      # manage request here
   end
end

只有处理完请求后才能“重定向”。

即使这样,你也不是在标准意义上重定向,而是从服务器调用新请求 - 将浏览器带到新资源。

所以你可能会得到以下结论:

#app/controllers/sessions_controller.rb
class SessionsController < ApplicationController
   def create
      if [[conditions for login]]
         redirect_to [[path]]
      else
         redirect_to [[path]]
      end
   end
end

重定向实际上是您的浏览器,可以使用相应的[[path]]打开新请求。该请求将填充session,允许您的应用程序验证用户会话等。