我需要在我的Rails应用程序中创建基于角色的权限系统.我会对CanCan感到非常满意,但主要问题是 - 它必须是动态的,因此管理员必须能够分配权限并创建新角色.权限可以是简单的控制器/操作限制,并且可以是数据相关的,例如一些用户可以仅编辑他们自己的配置文件,并且其中一些用户可以编辑特定组中的所有用户的配置文件.允许管理员创建新权限真的很不错.
我正在考虑的是在db中存储一个控制器/动作,以及一些与数据相关的限制(我真的很困惑这里定义它们的方式).那么请你给我一些建议,组织权限的最佳方法是什么?
任何想法都非常感激
equals()该方法适用于Object该类中的所有Java集合类.此方法也在Comparator接口中声明,那么在Comparator中声明此方法的目的是什么?在哪种情况下使用它以及如何使用?
我有几个使用elasticsearch索引的模型,其中一个模型有一个需要过滤的关联,但如果我在search方法中添加这样的东西
search.filter :range, 'sessions.starts_on' => {:gte => start_date,
:lte => ends_on}
Run Code Online (Sandbox Code Playgroud)
然后过滤掉所有模型,因为它们没有这种关联sessions.
那么有没有办法将过滤器应用于一个模型?
任何想法都非常感谢!
在PHP中,max()返回数组中的最高值或输入中的最大值.如果我们有两个或更多同样最大的价值观,那么如何应对这种情况呢?例如
$arr = array("a"=>1,"b"=>10, "c"=>10);
Run Code Online (Sandbox Code Playgroud)
现在,该怎么回事max($arr).理想情况下,它返回第一个遇到的最高值,b.如果我想要b和c作为结果怎么办?
- 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创建一个登录表单,我对它很新.我可以显示除此块之外的所有其他内容.
我使用omniauth使用设计并使用Facebook创建登录,但是有丢失设计帮助方法访问的问题,如current_user和user_signed_in?方法不起作用.
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仪表板方法
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)