从嵌套资源显示页面的反向链接

时间:2014-05-20 07:07:28

标签: ruby-on-rails ruby ruby-on-rails-3

我有一个嵌套在事件下的Schedule页面,我想要一个链接,以便用户可以返回到事件显示页面,但是我收到错误。

错误

syntax error, unexpected '(', expecting ')'

路线

resources :events do
  resources :sessions, path: "schedule", only: [:index]
end

视图

<%= link_to "Back to Event", @event_path(@event) %>

会话控制器

class SessionsController < ApplicationController

  before_filter :find_event

  def index
    @sessions = Session.all
  end

  private

  def find_event
    @event = Event.find_by(slug: params[:event_id])
  end

end

2 个答案:

答案 0 :(得分:3)

应该是:

<%= link_to "Back to Event", event_path(@event) %>

event_path是一种方法)

或简单地说:

<%= link_to "Back to Event", @event %>

答案 1 :(得分:2)

Marek is更正 -


需要注意的是,如果您想要发送到nested资源(您希望显示session的IE),则需要使用以下内容:

 session_path(@session, @event) #-> notice the two objects, not a single one

目前,您只需要传递单个对象,但是如果您想使用嵌套路线,则必须发送nested对象&amp;它的父对象