【问题标题】:Ruby on Rails - how to add link to view through buttonRuby on Rails - 如何通过按钮添加链接以查看
【发布时间】:2018-07-05 07:36:01
【问题描述】:

我有以下代码,我只想将我的按钮链接到下一个视图

<button type="submit" class="login-button"><link_to home_page.html.erb></link_to>    
<i class="fa fa-chevron-right"></i></button>

我该如何解决这个问题

【问题讨论】:

标签: ruby-on-rails ruby button link-to


【解决方案1】:

我想你在按钮之外的某个地方有 form_tag 或 form_for 。

你完全可以像 Rails 那样做

<%= submit_tag("submit") %>

或者如果你喜欢链接

<%= link_to 'submit', your_path, your_options %>

或者一个按钮

<%= button_to 'subimit, your_path, your_options %>

看看rails guides,你会发现很多例子

【讨论】:

  • link_to generate &lt;a&gt; 但使用要求是 type="submit" 所以我认为它不能按要求工作。
【解决方案2】:

=> link_to 生成一个&lt;a&gt; 标记,它不是input type="submit"。使用button_to,它会生成一个带有input type="submit" 链接按钮的表单。

假设 home_page.html.erb 的路径是homepage_path(用你的路径替换它。)

<%= button_to home_page_path,class: "login-button", method: :get do%>
  <i class="fa fa-chevron-right"></i>
<% end %>

您也可以这样使用:-

<%= button_to "<i class="fa fa-chevron-right"></i>".html_safe, homepage_path, class: "login-button", method: :get %>

【讨论】:

  • 仍然使用旧的 ruby​​ 语法 Hash: :class =&gt; "login-button" ?
  • @JagdeepSingh 感谢您指出,不应该使用粗箭头语法,但它仍然有效,我会更新答案:)
  • @Gabbar:“不应该使用”是什么意思?它不像这种形式被弃用或任何东西。 JFYI,这里的术语是“hashrocket”,而不是“fat arrow”
  • 据我所知,它是旧语法,使用具有火箭语法的不是好习惯。我说的对吗?
【解决方案3】:

我不确定是否理解,但如果您需要链接到不需要按钮的另一个页面,则需要一个链接。

如果你想让它看起来像你喜欢的那样,你可以添加一个简单的链接到那个 url(不是页面,而是到那个页面的路由)并使用 css 将它的样式设置为按钮。

如果您需要提交和详细说明一些从控制器调用方法的内容,这取决于:

1.如果您的控制器是一个简单的控制器,您可以在方法结束时使用 redirect_to 来管理它

def method
  # your elaboration
  redirect_to :your_route
end

2.如果它是一个 API 控制器并且你从一个 javascript 函数调用它,你可以在你的回调中添加一个 window.location.href 到你的路由

success: (data) => {
 // your elaboration
 window.location.href = "path/to/your/page"
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-13
    • 2017-09-14
    • 1970-01-01
    • 1970-01-01
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多