我试过
= link_to 'foo', :action => 'bar', :id => 'foobar'
但ID似乎只是修改了href,导致
<a href="controller/foobar/bar">foo</a>
如何正确设置ID?也有人可以向我解释原因:id正在修改href,这样我才能理解幕后发生了什么?
答案 0 :(得分:8)
您必须将:action => 'bar'
放在哈希中。
= link_to 'foo', { :action => 'bar' }, :id => 'foobar'
docs中有一个例子说明了同样的问题:
CSS的类和ID很容易生成:
link_to "Articles", articles_path, :id => "news", :class => "article"
# => <a href="/articles" class="article" id="news">Articles</a>
使用旧的参数样式时要小心,作为额外的文字 需要哈希:
link_to "Articles", { :controller => "articles" }, :id => "news",
:class => "article"
# => <a href="/articles" class="article" id="news">Articles</a>
离开哈希会给出错误的链接:
link_to "WRONG!", :controller => "articles", :id => "news", :class => "article"
# => <a href="/articles/index/news?class=article">WRONG!</a>
这就是为什么你最好使用带有路由别名的新参数样式,而不是明确地调用控制器和动作。
答案 1 :(得分:2)
你能为此使用路径助手吗?这取决于您正确配置的路由。
例如:
= link_to "foo", foo_path, :id => "foobar"
答案 2 :(得分:2)
您可以使用link_to
标记传递参数,例如
= link_to "foo", { :controller => "foo", :id => "foobar"}
或
= link_to "foo", {:action=> "any-action, ":controller => "foo", :id => "foobar"}
这里你没有链接_tag
的参数