使用Rails动态构造RESTful路由

时间:2009-04-13 17:01:21

标签: ruby-on-rails ruby routes

我正在尝试编写一个辅助方法,它接受复数资源的名称并返回相应的链接。该方法的本质是:

def get_link(resource)
  link_to "#{resource.capitalize}", resource_path
end

- 上面的resource_path部分不起作用。我想要的是能够通过foos获取foos_pathbars获取bars_path等。我该怎么做?我无法理解语法。

3 个答案:

答案 0 :(得分:7)


def get_link(resource)
  link_to "#{resource.capitalize}", send("#{resource}_path")
end

答案 1 :(得分:2)

def get_link(resource)
  link_to(resource.to_s.titleize, send("#{resource}_path"))
end

对资源的to_s调用是支持将符号作为资源传递。 所以

get_link("foos")

将起作用,也

get_link(:foos)

答案 2 :(得分:0)

如果要构建具有成员的RESTful路由:

send("edit_#{resource}_path".to_sym, @resource)