我收到此错误:
2011-04-09T18:13:17 + 00:00 app [web.1]:NameError(未初始化的常量Group :: Membership): 2011-04-09T18:13:17 + 00:00 app [web.1]:app / controllers / groups_controller.rb:25:in"how_members'
当我尝试在组控制器中使用Show_members方法时。我做错了什么?
class User < ActiveRecord::Base
require 'paperclip'
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable, :lockable and :timeoutable
devise :database_authenticatable, :registerable, :confirmable,
:recoverable, :rememberable, :trackable, :validatable
has_and_belongs_to_many :roles
has_many :articles
has_many :ratings
has_many :rated_articles, :through => :ratings, :source => :articles
has_many :memberships, :dependent => :destroy
has_many :groups, :through => :memberships
...
class Membership < ActiveRecord::Base
attr_accessible :user_id, :group_id
belongs_to :user
belongs_to :group
validates_uniqueness_of :user_id, :message => "You can only join one group!"
end
class Group < ActiveRecord::Base
require 'paperclip'
attr_accessible :name, :group_admin, :about, :location, :created_at, :avatar
validates_uniqueness_of :name, :group_admin
validates_length_of :name, :in => 4..40
has_many :memberships, :dependent => :destroy
has_many :users, :through => :memberships
end
def show_members # members page
@group = Group.find(params[:id])
@members = @group.users <= THIS LINE IS THE ERROR
@group_admin = User.find(@group.group_admin)
respond_to do |format|
format.html
format.xml { render :xml => @group }
end
end
def remove_user
@membership = Membership.find(params[:user_id, :group_id])
@membership.destroy
authorize! :remove_user, @membership
respond_to do |format|
format.html { redirect_to(:back, :notice => 'User was successfully Removed.') }
format.xml { head :ok }
end
我在show_members.html.erb中链接到的groups_controller中执行了此操作 错误可能来自于此吗?
答案 0 :(得分:1)
天哪啊。我刚检查了git日志。显然,尽管我做了git commit -a -m“blah”,但是由于某种原因,git决定不将会员模型文件添加到repo中。我认为-a标志添加了所有内容?
答案 1 :(得分:0)
我没有看到您粘贴的代码中出现错误,但从您获得的错误代码判断,您必须在某个无法访问的位置具有常量值。您的代码中是否有任何Group.Membership调用? (也许是一个模块?)也许你打算写group.membership或其他东西。我真的无法发现其他任何事情:/
编辑:
是的,我看到一些应该引起问题的事情:@group_admin = User.find(@group.group_admin)
group.admin是我在验证中看到的名称,您正在查找ID。它应该是find_by_group_admin。