使用 ruby 中的提交按钮重定向到另一个 URL
Posted
技术标签:
【中文标题】使用 ruby 中的提交按钮重定向到另一个 URL【英文标题】:redirect to another URL using submit button in ruby 【发布时间】:2014-06-26 19:13:39 【问题描述】:我有提交按钮,我想重定向到另一个 URL(硬编码)这个 URL
https://www.ccavenue.com/shopzone/cc_details.jsp
我的代码:
<%= form_tag @ccavanue do |f| , url => "https://www.ccavenue.com/shopzone/cc_details.jsp", :html => :method => "put" %>
<%= hidden_field_tag :my_field, @MerchantId, :id => 'merchant_id' %>
<%= submit_tag "Click Me" %>
<% end %>
我想用这个提交按钮重定向另一个网站 URL。请指导我。
【问题讨论】:
你写的东西好像你想post
到另一个网站的一个网址。这不是一个好主意,***.com/questions/11423682/cross-domain-form-posting。如果您想在该帖子之后重定向,您应该将相关代码添加到您的控制器以执行对该位置的获取请求。
【参考方案1】:
将您的代码更改为以下内容:
<%= form_for @ccavanue, url: "https://www.ccavenue.com/shopzone/cc_details.jsp" do |f| %>
<%= f.hidden_field :my_field, @MerchantId, :id => 'merchant_id' %>
<%= f.submit "Click Me" %>
<% end %>
在 Rails 中,表单旨在创建或更新资源,并以多种方式反映资源的身份:
-
表单发送到的 url(表单元素的 action 属性)应该导致请求被路由到适当的控制器操作(在现有资源的情况下使用适当的 :id 参数),
输入字段的命名方式应使其在控制器中的值出现在参数哈希中的适当位置,并且
对于现有记录,最初显示表单时,与资源属性对应的输入字段应显示这些属性的当前值。
在 Rails 中,这是通过使用 form_for 创建表单来实现的,其中:
如果我们想创建任何对象,我们在 url 中使用 POST 方法,如果我们试图更新现有记录,则使用 PUT 方法。
Rails 框架足够聪明,可以通过自身查看表单的 url 来使用 POST 或 PUT 方法。所以在这种情况下,我们不需要在 form_for url 中使用 method 参数。
或许你可以从Michael Hartl's tutorial开始
【讨论】:
我不知道你为什么对form_for使用“put”方法,但尽量不要在form_for中传递方法参数 我不知道这一点。我是 ruby 的新手,我想购买 Ruby on Rails 的书,以便更好地开始学习。请指导我 我已经用 Ruby on Rails 的相关指南修改了答案。请查看编辑后的答案以上是关于使用 ruby 中的提交按钮重定向到另一个 URL的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 ajax 提交带有 3 个提交按钮的表单而不重定向到 Laravel 中的表单操作 url?