【问题标题】:Rails named routes. When should you use them?Rails 命名路线。你应该什么时候使用它们?
【发布时间】:2013-05-30 17:44:03
【问题描述】:

一个简单的问题。我想知道这样做的正确方法是什么。假设你有这个:

Event
Venue.has_many :events
Performer.has_many :events

对于路由:

resources :venues do
  resources :events
end

resources :performers do
  resources :events
end

你在 events/index.html.haml 中。链接到内部操作的正确方法是什么?


选项 1

= link_to "New event", {:action => :new}

选项 2

使用命名路由之类的?

= link_to "New event", params[:performer_id] ? new_performer_event_path(params[:performer_id) : new_venue_event_path(params[:venue_id])

选项 3 还是使用浅层路线?

= link_to "New event", new_event_path

只是好奇这样做的正确/行业标准方法是什么。一般而言,选项 2 不是不好的做法吗?

感谢您的帮助。

【问题讨论】:

    标签: ruby-on-rails routes nested-routes


    【解决方案1】:

    你真的需要嵌套resources :events吗?

    如果是这样,您可以在 events/index.html.haml 中使用
    = link_to "New event", [@parent, @event]

    def index  
      @parent = Performer.find_by_id(params[:performer_id]) || Venue.find_by_id(params[:venue_id])  
      @event = Event.new  
    end
    

    【讨论】:

      【解决方案2】:

      这取决于您希望您的网址如何。如果你想要它是

      /performers/:performer_id/events/new
      

      那就去吧

      new_performer_event_path(params[:performer_id)
      

      【讨论】:

        猜你喜欢
        • 2010-12-05
        • 1970-01-01
        • 2021-09-07
        • 2011-09-30
        • 1970-01-01
        • 1970-01-01
        • 2010-12-27
        • 1970-01-01
        • 2016-07-28
        相关资源
        最近更新 更多