【问题标题】:Nested resources for recursive association in RailsRails 中递归关联的嵌套资源
【发布时间】:2016-01-11 05:22:22
【问题描述】:

在我的应用程序中,用户可以评价另一个用户。 我定义了以下架构:

# feedback.rb
class Feedback < ActiveRecord::Base
  belongs_to :subject, class_name: 'User', foreign_key: 'subject_id'
  belongs_to :writer, class_name: 'User', foreign_key: 'writer_id'
end

# user.rb
class User < ActiveRecord::Base
   has_many :feedbacks, class_name: 'Feedback', foreign_key: 'subject_id'
   has_many :written_feedback, class_name: 'Feedback', foreign_key: 'writer_id'
end

现在我必须定义路线,我一直在思考是否嵌套资源以及是否嵌套。

这就是我尝试定义路线的方式,但我不确定。 这样我只能接触到或给予用户的反馈或用户写的反馈。

#routes
....
  resources :users, except: [:new, :edit] do 
    resources :feedbacks, except: [:new, :edit]
  end

这是构建此架构的最佳方式吗?

【问题讨论】:

    标签: ruby-on-rails database activerecord entity-relationship


    【解决方案1】:

    经过一些尝试,我决定扩展 feedbacks_controller。

    class FeedbacksController < ApplicationController
    end
    
    module Feedbacks
      class ReceivedFeedbacksController < FeedbacksController
      end
    end
    
    
    module Feedbacks
      class GivenFeedbacksController < FeedbacksController
      end
    end
    
    
    #routes
    Rails.application.routes.draw do
        resources :given_feedbaks,
                  only: [:index],
                  controller: 'feedbacks/given_feedbacks'
        resources :received_feedbaks,
                  only: [:index],
                  controller: 'feedbacks/received_feedbaks'
      end
      resources :feedbacks, only: [:show, :create, :update, :destroy]
    end
    

    【讨论】:

      猜你喜欢
      • 2010-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多