Rails嵌套资源不显示正确的索引

时间:2014-08-07 23:38:25

标签: ruby-on-rails angularjs associations rails-activerecord

所以我在Rails中有两个模型。但是,当我访问路径/seures/:id/users.json时,我没有得到与特定讲座相关的用户。我得到了所有用户。我不确定我在这个协会/路线上做错了什么,但我很感激你一路上的一点指导!据我所知,一切都应该正确设置......

讲座协会

belongs_to :organization

  belongs_to :training_type
  has_many :training_histories
  has_many :users , through: :training_histories

  accepts_nested_attributes_for :training_histories

用户关联

 has_many :user_groups
  has_many :groups, through: :user_groups

  has_many :training_histories

  has_many :lectures
  has_many :lectures, through: :training_histories

  belongs_to :organization

培训历史协会

  belongs_to :lecture
  belongs_to :user # this could be any type of user

  delegate :training_type, to: :lecture

  has_many :attachments

  accepts_nested_attributes_for :attachments

路线

  resources :training_histories do
    member do
      get :next
    end
  end

  resources :lectures do
    resources :users

    collection do
      get :calendar
    end

  end

到目前为止,无论我如何更改关联,只要讲座有很多用户,反之亦然,我无法在路由/讲座/:id / users上使用Angular中的资源调用获得特定用户的演讲。 JSON。

编辑:当我耙路线时,我确实得到了路线

lecture_users GET    /lectures/:lecture_id/users(.:format)          users#index

1 个答案:

答案 0 :(得分:1)

首先,您的用户控制器索引操作的代码在哪里,即使您正确创建了路由和关联,仍需要创建控制器的正确代码以获得正确的结果。

第二,我在用户模型中注意到你已经两次宣讲与讲座的关联,这是不正确的

has_many :training_histories

has_many :lectures
has_many :lectures, through: :training_histories

你应该把它调整为:

has_many :training_histories
has_many :lectures, through: :training_histories