CanTango如何运作?

时间:2011-10-04 09:32:02

标签: ruby-on-rails

我是Rails的新手,我需要你的帮助。

我有这个:

# config/initializers/cantango.rb 

CanTango.config do |config|
  config.engines.all :on
  # more configuration here...
end

# app/models.User.rb

class User < ActiveRecord::Base
 def roles_list
  roles_rel = Role.where(:user_id=>self.id)
  roles=[]
  roles_rel.each do |x|
    roles.push(x.name)
  end
  return roles #return [":reader","writer"] from database
 end
end

# app/permits/reader_permits.rb

class ReaderPermit < CanTango::UserPermit
  def initialize ability
    super
  end

  protected

  def permit_rules
    can :read, :all   

  end
end

在我看来,我有

<%= link_to 'readddd', "/news/feed/read_full?s=#{g.id}&page_id=#{params[:page_id]}" if user_can?(:read, Newsfeed)%>

但我收到错误undefined method 'user_can?' for #<#<Class:0xaf41f50>:0xaf40eac>

请给我一个非常简单的解释,说明我的情况,我必须写的地方和内容。 GitHub对我没有帮助。

1 个答案:

答案 0 :(得分:0)

在这里暂停教程: https://github.com/kristianmandrup/cantango/wiki/Quickstart

我想您忘记了这一点:创建并注册用户模型

  

首先,您必须拥有用户模型。请使用tango_user宏   使用CanTango注册用户类。 CanTango将生成用户   API方法,如#user_can?对于User类,admin_can?为一个   注册管理员用户类等。

class User
  # register as a "user class" for CanTango
  tango_user
end