一个简单的问题。我想知道这样做的正确方法是什么。说你有这个:
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不是不好的做法吗?
感谢您的帮助。
答案 0 :(得分:0)
你真的需要嵌套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
答案 1 :(得分:0)
这取决于你想要你的网址。如果你想要它
/performers/:performer_id/events/new
然后去
new_performer_event_path(params[:performer_id)