ruby-on-rails - 实现单表继承后的 Broken Rails 路由

标签 ruby-on-rails ruby routing single-table-inheritance ruby-on-rails-3

我已经为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/

相关文章:

ruby-on-rails - git push heroku master - 无法将我的网站推送到 heroku

ruby-on-rails - 安装 Rails 3 时如何修复 (Errno::EINVAL) 错误?

ruby-on-rails - 如何用 Rails 预填充文本区域

ruby-on-rails - 如何在rspec中传递嵌套资源中的parent_id来获取

ruby-on-rails - 无法在 OSX-10.9.2 Mavericks 上安装 ruby​​-audio

ruby-on-rails - Rails 3 路由和命名空间

ruby-on-rails - Ruby on Rails form_with 未显示错误,卡在服务器端

ruby - 需要在 Rails 中创建基于事件的消息传递和徽章系统的建议

swift - 返回重定向响应而不是预期的叶 View

此设置的 Linux nat/iptables 配置