为什么ruby on rails link_to重定向到自己?

时间:2015-02-11 04:40:38

标签: ruby-on-rails view controller routes rubymine

假设我有一个控制器测试。

在测试中我定义了3个动作:

def zah
end
def zeh
end
def zih
end

我有意见:

zah.html.erb
zeh.html.erb
zih.html.erb

并在routes.rb下我有:

get 'test/zah'
get 'test/zeh'
get 'test/zih'

如果我在zah.html.erb下编写,使用从rubymine IDE自动创建的代码,这个:

<%= link_to test_zeh_path%>

我将获取我的页面源代码:

<a href="/test/zah">http://localhost:3000/test/zeh</a>

使zah的重定向成为自己。

运行rake路由返回:

      Prefix Verb URI Pattern                 Controller#Action

    test_zah GET  /test/zah(.:format)         test#zah
    test_zeh GET  /test/zeh(.:format)         test#zeh
    test_zih GET  /test/zih(.:format)         test#zih

任何人都可以向我解释为什么链接会自动(从zah到zah)而不是其他页面(从zah到zeh)?

编辑:

我发现在链接中添加名称会使生成的代码正常工作:

<%= link_to 'zeh', test_zeh_path%>

我在22:45看到了第一次使用(link_to test_zeh_path)here

Ruby on rails api确实说如果传递了nil名称,那么&#34;链接本身的值将成为名称。&#34;。

至于我自己的错误,我想知道为什么Dave Jones能够创建一个没有名字的链接,但他没有,这可以在他的源代码中看到。

1 个答案:

答案 0 :(得分:-1)

因为你已在显示部分写了网址。

你可以简单地做到 <%= link_to 'Goto Zeh', test_zeh_path %> 你会很高兴。