我已经为person类实现了单表继承
class Person < ActiveRecord::Base
end
class Teacher < Person
end
class Student < Person
end
class Outsider < Person
end
并且创建人员似乎根据在 form.select 中选择的内容创建 Teacher、Student 或 Person,并添加了 type 属性。
不过,我好像把路由弄坏了
<%= link_to '编辑', edit_person_path(@deal) %> | <%= link_to 'Back', persons_path %>
它们似乎指向 teacher_path、student_path 和 outsider_path 而不是 person_path。
路线需要做哪些改变?
最佳答案
首先为您的模型生成 Controller ...
rails generate controller Persons
rails generate controller Teachers
rails generate controller Students
rails generate controller Outsiders
然后在 routes.rb (rails 3)
resources :persons
resources :teachers
resources :students
resources :outsiders
给你 REST 路由
例如
persons GET /persons(.:format) {:action=>"index", :controller=>"persons"}
new_person GET /person/new(.:format) {:action=>"new", :controller=>"persons"}
edit_person GET /persons/:id/edit(.:format) {:action=>"edit", :controller=>"persons"}
person GET /persons/:id(.:format) {:action=>"show", :controller=>"persons"}
persons POST /spersons(.:format) {:action=>"create", :controller=>"persons"}
person PUT /persons/:id(.:format) {:action=>"update", :controller=>"persons"}
person DELETE /persons/:id(.:format) {:action=>"destroy", :controller=>"persons"}
老师、学生、外人都一样
检查rake路线 或 rake 路线 | grep老师
关于ruby-on-rails - 实现单表继承后的 Broken Rails 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4432858/