好吧,我不知道怎么称呼它。这是我最好的猜测。这是我的问题:
我有Issues
和Reviews
个控制器。它们都应该嵌套Comments
控制器。
我是否必须为icomment
为Issues
和rcomment
生成Reviews
两个单独的支架,或者是否有办法同时使用资源?
这两个控制器已经嵌套了,所以我想维护它会变得相当混乱。对此最好的方法是什么?
答案 0 :(得分:2)
您可以将其保留在与两个可评论对象相同的级别:
namespace :whatever
resources :comments
resources :issues
resources :reviews
end
强制请求/whatever/comments
获取params[:commentable_id]
(用于创建,更新和编辑)和params[:commentable_type]
(用于所有CRUD)的值;)
问题模型的嵌套表单示例:
# issues controller
before_filter :set_issue, only: [:new, :edit, :update, :destroy]
def set_issue
@issue ||= params[:id].present? ? Issue.find(params[:id]) : Issue.new
end
# view _form
form_for @issue do |f|
f.text_field :name
f.fields_for @issue.comments.new do |ff|
ff.text_field :content
end
f.submit "Save!"
end
# Issue model
class Issue < ActiveRecord::Base
has_many :comments, as: :commentable
accepts_nested_attributes_for :comments