【问题标题】:How do I add a custom view+controller to a model?如何将自定义视图+控制器添加到模型?
【发布时间】:2011-10-31 05:38:56
【问题描述】:

Rails 2.3.11

在 Rails 中,当您生成脚手架时,它会为其创建索引、显示、编辑和新视图,以及相关控制器中的许多方法。如何将自己的视图添加到模型中?

对于我的事件模型,我想添加 /events/past 以显示所有已经发生的事件。当我刚刚添加时

def past
end

events_controllercreate /views/events/past.html.erb,然后转到site.com/events/past,它会查找ID 为“past”的事件。

如果我将map.match '/events/past' => 'events#past' 添加到routes.rb,它说我必须指定控制器。

如果更改为 map.match '/events/past' => 'events#past', :controller => :events,我会返回相同的“找不到 ID=past 的事件”错误。

感谢您帮助刚接触 Rails 的人!

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    既然这是老Rails,相信你一定要用:

    map.match 'events/past', :controller => "events", :action => "past"
    

    【讨论】:

    • 那行得通-谢谢。对于遇到此问题的其他人,由于优先级,该行需要所有 map.resources 行之前。
    • 没问题。您可能还想查看Rails Routing from the Outside In
    【解决方案2】:

    我相信您缺少的是 :on => :collection 位。那么我打赌顺序并不重要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多