0

假设我有一个用户表和一个活动表(带有一个 user_id 列),并且每个活动都有一个创建者(用户)和一个成员列表,他们也是(用户)。所以我有

class UsersController < ApplicationController
  has_many :campaigns

class CampaignsController < ApplicationController

  belongs_to :user 
  has_many :users 
  accept_nested_attributes_for :users

但我得到一个错误:ActionController::RoutingError (undefined methodbelongs_to' for CampaignsController:Class)`

4

2 回答 2

5

模型关系必须在您的模型文件中声明,而不是在您的控制器中。它应该是 :

class User < ActiveRecord::Base
  has_many :campaigns


class Campaign< ActiveRecord::Base

  belongs_to :user 
  has_many :users 
  accept_nested_attributes_for :users
于 2013-06-27T14:53:14.717 回答
1

方法#has_many#belongs_to是为 ActiveRecord 模型定义的,而不是 ActionPack 控制器。

您需要创建模型(通过迁移创建表和列):用户和 Camaign 并在那里定义关系,在控制器中您只需获取模型并将它们显示在视图中,或者使用来自用户的参数更新模型。

于 2013-06-27T14:52:04.773 回答