加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails:link_to with block和GET params?

发布时间:2020-12-17 04:19:17 所属栏目:百科 来源:网络整理
导读:如何在link_to块声明中实现查询字符串和URL参数?现在,我有这个,它有效: %= link_to 'Edit',:edit,:type = 'book',:id = book % 以上工作和输出: http://localhost:3000/books/edit/1?type=book 我想做的是这样的: % link_to :edit,:id = book do % ...%
如何在link_to块声明中实现查询字符串和URL参数?现在,我有这个,它有效:
<%= link_to 'Edit',:edit,:type => 'book',:id => book %>

以上工作和输出:

http://localhost:3000/books/edit/1?type=book

我想做的是这样的:

<% link_to :edit,:id => book do %>
    ...
<% end %>

但以上格式输出:

http://localhost:3000/books/edit/

这不是我正在寻找的…我希望它输出像前面的例子一样的URL.

我怎样才能做到这一点?

解决方法

link_to采用与 url_for相同的选项.话虽如此,没有:type选项,它并不真正接受块,所以我的猜测是你的第二个例子工作的原因是因为它位于Book视图的范围内.正如 Tom在回答此答案时所提到的,将块传递给link_to可以用作第一个参数(链接文本)的替代.

如果Book是一个资源,您可以通过传递一个方便的,自动生成的资源路由来获取link_to帮助程序来生成您正在寻找的URL.在尝试此操作之前运行rake路由:

<%= link_to "Edit",edit_book_path(book) %>

否则,您可以明确说明要链接到的控制器/操作:

<%= link_to "Edit",:controller => "books",:action => "edit",:id => book %>

快乐的黑客.

编辑:几乎忘记了,你可以在声明你要链接的对象的id之后添加绕过它们的查询字符串.

<%= link_to "Edit",edit_book_path(book,:query1 => "value",:query2 => "value")

产品/书籍/ 1 /编辑?query1 = value& query2 = value.或者:

<%= link_to "Edit",:id => book,:query2 => "value" %>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读