小编alo*_*ony的帖子

Rails应用程序中的动态角色和权限系统

我需要在我的Rails应用程序中创建基于角色的权限系统.我会对CanCan感到非常满意,但主要问题是 - 它必须是动态的,因此管理员必须能够分配权限并创建新角色.权限可以是简单的控制器/操作限制,并且可以是数据相关的,例如一些用户可以仅编辑他们自己的配置文件,并且其中一些用户可以编辑特定组中的所有用户的配置文件.允许管理员创建新权限真的很不错.

我正在考虑的是在db中存储一个控制器/动作,以及一些与数据相关的限制(我真的很困惑这里定义它们的方式).那么请你给我一些建议,组织权限的最佳方法是什么?

任何想法都非常感激

ruby roles ruby-on-rails

15
推荐指数
2
解决办法
8095
查看次数

在比较器接口中使用equals()方法?

equals()该方法适用于Object该类中的所有Java集合类.此方法也在Comparator接口中声明,那么在Comparator中声明此方法的目的是什么?在哪种情况下使用它以及如何使用?

java

11
推荐指数
3
解决办法
6569
查看次数

过滤仅适用于Rails中使用Tire和ElasticSearch的一个模型

我有几个使用elasticsearch索引的模型,其中一个模型有一个需要过滤的关联,但如果我在search方法中添加这样的东西

  search.filter :range, 'sessions.starts_on' => {:gte => start_date,
                                                 :lte => ends_on}
Run Code Online (Sandbox Code Playgroud)

然后过滤掉所有模型,因为它们没有这种关联sessions.

那么有没有办法将过滤器应用于一个模型?

任何想法都非常感谢!

ruby ruby-on-rails elasticsearch tire

5
推荐指数
1
解决办法
900
查看次数

如何处理一组相等的值和最大函数?

在PHP中,max()返回数组中的最高值或输入中的最大值.如果我们有两个或更多同样最大的价值观,那么如何应对这种情况呢?例如

$arr = array("a"=>1,"b"=>10, "c"=>10);
Run Code Online (Sandbox Code Playgroud)

现在,该怎么回事max($arr).理想情况下,它返回第一个遇到的最高值,b.如果我想要b和c作为结果怎么办?

php

1
推荐指数
1
解决办法
935
查看次数

任何人都可以告诉我为什么这个haml代码不显示任何内容

- form_tag sign_in_users_path do 
  - if @user.errors.any? 
    %div#error_explanation
  %h2= pluralize(@user.errors.count, "error") 
  %ul
    - @user.errors.full_messages do |msg|
  %li= msg

  = label_tag :login
  = text_field_tag :login
  = label_tag :password
  = password_field_tag :password

  %div.form_actions
    = submit_tag
Run Code Online (Sandbox Code Playgroud)

我正在尝试用haml创建一个登录表单,我对它很新.我可以显示除此块之外的所有其他内容.

haml ruby-on-rails

1
推荐指数
1
解决办法
189
查看次数

devise + omniauth设计帮助器,如current_user,user_signed_in?不工作

我使用omniauth使用设计并使用Facebook创建登录,但是有丢失设计帮助方法访问的问题,如current_user和user_signed_in?方法不起作用.

编辑

AuthenticationController

def create
    omniauth = request.env["omniauth.auth"]    
    user = User.find_by_provider_and_uid(omniauth["provider"], omniauth["uid"]) ||       User.create_with_omniauth(omniauth)    
    session[:user_id] = user.id    
    redirect_to dashboard_path(user.id), :notice => "Signed in!"    
end  
Run Code Online (Sandbox Code Playgroud)

redirect_to USercontroller仪表板方法

UserController的

before_filter  :logged_in

 def dashboard    
    @user = User.find(params[:id])   
    @comment = Comment.new    
    @comments = @user.comments.all.paginate(:page => params[:page], :per_page => 5)    
 end 
Run Code Online (Sandbox Code Playgroud)

所以这里控制应该在检查ApplicationController中的logged_in方法后转到dashboard方法

ApplicationController中的logged_in方法

应用控制器

def logged_in    
    if user_signed_in?     
       return true    
    else    
       redirect_to root_path    
       flash[:message] = "please login"    
    end     
  end 
Run Code Online (Sandbox Code Playgroud)

当我使用Facebook在控制台生成的代码后登录时

Started GET "/users/52/dashboard" for 127.0.0.1 at Thu Mar 29 12:51:55 +0530 2012     
Processing by UsersController#dashboard …
Run Code Online (Sandbox Code Playgroud)

devise omniauth ruby-on-rails-3

0
推荐指数
1
解决办法
2669
查看次数