我正在读Obie Fernandez的“The Rails 3 Way”,还有一点我不确定我是否理解正确。我是rails的新手,想确保我理解正确。我对vanilla Ruby有一些经验。不多,但有些。
有问题的文字如下:(关于路由和config / routes.rb文件)
” ...
创建像
这样的路线match 'auctions/:id' => "auction#show", :as => 'auction'
你可以在
等情况下使用漂亮的帮助方法link_to item.description, auction_path(item.auction)
...“
我的问题是,具体是match 'auctions/:id' => "auction#show", :as => 'auction'
的哪一部分创建了辅助函数? (例如link_to auction
和auction_path()
)是:as => 'auction'
部分吗?是否可以在不附加:as => 'auction'
的情况下创建任何助手?
我的困惑源于我所看到的其他指南遗漏了这一点,但是无论如何都会创建助手。 rails在routes.rb文件的match
语句中使用什么来创建帮助程序?如果它不是:as => 'auction'
部分,那么将其附加到match
语句的具体目的是什么?
我知道这似乎是一个超级基本的问题,但这个细节似乎在我迄今为止阅读的文本中被掩盖了。提前感谢您可以获得的任何光线。
答案 0 :(得分:2)
我刚试过这个:
match "alfa/beta", to: 'users#new'
在这种情况下,即使没有:as => 'named_route'
,我也可以免费获得以下帮助
alfa_beta_path
正如预期的那样,指向users#new
。
因此,似乎通过解析路由的字符串也可以自动生成帮助程序,以防没有:as
规范。
答案 1 :(得分:1)
是的,:as => 'named_route'
部分创建了命名路径(后者又创建了帮助程序)。关于它,你是指resources :something
中routes.rb
的实例吗? resources
方法基于资源名称自动生成一组URL帮助程序。