【问题标题】:rails controller action routingrails 控制器动作路由
【发布时间】:2011-12-11 23:00:50
【问题描述】:

我希望根据控制器中定义的操作“自动”生成路由。资源路由(据我所知)仅自动为 http 动词生成路由和助手。在这种情况下,我主要使用 rails 提供静态页面,并且在我的控制器中不需要 http 动词。

具体来说:

在控制器中,我定义了引用那些主要是静态页面的操作。

def action
end

在路由文件中我有一堆

match "/url" => 'controller#action'

我希望根据控制器中的操作自动生成所有匹配的路由。概念上类似于:

for actions in controller.erb do |action|
    'match "/action" => "controller#action"
end

这可能吗?直接在路由文件中写代码好吗?

我还需要考虑一些嵌套操作...控制器操作可能是:

def action
    def nested_action
    end
end

如果您对此事有任何想法,我将不胜感激。谢谢。

【问题讨论】:

  • 在你的资源块中尝试match ':action'...

标签: ruby-on-rails controller routes action


【解决方案1】:

正常的/:controller/:action idea?有什么问题

这不会处理嵌套动作,但是......我很难理解你为什么想要那个。

【讨论】:

  • 我全忘了!这应该可以满足我 90% 的需求...谢谢!
  • 我不认为这会创建路径助手(我喜欢使用)。我明天再确认。
  • @twinturbotom 当然不是;怎么可能?控制器和操作是任意的。
  • @twinturbotom(你确定吗?我真的不记得了。)
【解决方案2】:

你可以这样做:

controller :controller_name do
   get "path/action" => :method_name, :as => :path_action
   post "path/save" => :method_name, :as => :path_save
end

也就是说,您可以使用上述方法在一个控制器中对不同的路由进行分组。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多