使用嵌套资源

时间:2013-07-04 00:15:23

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

想象一下。我在网址http://localhost:3000/companies/3上,在此视图中,我想要一个employees按钮,可以转到http://localhost:3000/companies/3/employees

在我的路线文件中,我有

  namespace :companies, :only => [:index, :show, :new, :edit, :destroy], :path => "/:companies" do
    resources :employees, :only => [:index, :edit, :new, :show] do
    end
  end

我知道我需要链接到“员工”的索引操作,但我不知道要添加到我公司的“show”页面。现在,它看起来像

%a{title: "company1", href: "#"} Employees

(我正在使用haml,但随时可以在erb中发布你的答案)

在rake路线中,我得到了

companies_employees GET    /:companies/employees(.:format)          companies/employees#index

...但我想要公司/ company_id / employees

谢谢!

1 个答案:

答案 0 :(得分:1)

链接到公司展示页面中的员工

<%= link_to 'Employees', company_employees_path(@company) %>

员工控制器

def index
  @company = Company.find(params[:company_id])
  @employees = @company.employees
end

<强>路由

  resources :companies do
    resources :employees
  end

佣金路线

company_employees GET /companies/:company_id/employees(.:format) employees#index