假设我有一个用户表和一个campaign表(具有一个user_id列),并且每个campaign都有一个创建者(他是用户)和一个成员列表,这些成员也是用户。所以我有
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)`
发布于 2013-06-27 22:53:15
模型关系必须在模型文件中声明,而不是在控制器中声明。它应该是:
class User < ActiveRecord::Base
has_many :campaigns
class Campaign< ActiveRecord::Base
belongs_to :user
has_many :users
accept_nested_attributes_for :users发布于 2013-06-27 22:52:05
方法#has_many和#belongs_to是为ActiveRecord模型定义的,而不是ActionPack控制器。
您需要创建模型(使用迁移创建表和列):user和Camaign,并在那里定义关系,在控制器中,您只需获取模型并在视图上显示它们,或者使用来自User的参数更新模型。
https://stackoverflow.com/questions/17346362
复制相似问题