几个月以前就买了第二版,还没看,但是想收藏
个人猜测你当前并没有处于登陆状态,所以 user 是 nil,因此没有任何操作权限。
官方文档已经告诉你 current user 会传递到 initialize 方法,如果处于未登陆状态,你只有创建一个 guest user。
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user (not logged in)
if user.admin?
can :manage, :all
else
can :read, :all
end
end
end
根据你的 ability.rb 的定义,你的当前 user 要么不存在,要么 genre 不在 1,2,3 的范围内,最好是在 index 方法里面把 current_user 的信息打印出来
首先建议使用 cancancan,其次把你 ability.rb 和 user controller 的代码贴出来,你这里提供的信息太少了。
@brookzhang 我经历过这样的事情,研发评估开发一项功能需要一个周,但是产品或者运营只给你三天时间,主程和 PM 根本没有话语权,完全由产品或运营主导,他们根本不关心什么 code review,什么测试,只要功能准时上线就好,这种情况太普遍了,我也觉得很无奈。
@academus githuber 做得不错
牛掰啊!
现在很普遍的一个现象就是很多人都觉得 Rails 太简单的,简单的在开发组里随便找个张三李四就可以开项目了,连 rails guide 主要章节都没看过就开整了,更别说什么规范,最佳实践了。等项目做了几个月,代码已经几万行了,应用已经跑起来了,公司所有人都在为他们的开发速度所惊叹,对他们的能力大加赞赏!却不知道这是个定时炸弹,如果很不幸你成为了接盘侠,你也只有有苦说不出。我并没有贬低任何人的意思,只是觉得在面对一种新的语言,新的技术,应该有一定的敬畏之心,愿意花一点功夫去做功课,这样对自己,对别人都是有好处的。
@holysoros 为 程序员认真追求极致的态度却不能少 赞一个!
Active Record 就用到了元编程,你可以看下源码。我不反对用元编程,但是有几个原则:
仔细看下文档,你这里应该是显示的 cat 的名字,试着这样做:
f.association :cat, label_method: :cat_name
这个不是乱码,而是 cat 的对象吧,你应该是哪个地方用错了,最好把那一块的代码贴出来
@qinfanpeng 我也很同意你的说法,项目前期地基要打牢,不然就会是一座危房。
@xlaok 是和 rails 没有关系啊,我只是觉得 rails 目前被普遍的滥用了,被滥用肯定是人的问题,不会是语言或者框架的问题
@hging 我想你根本没有认真看,只是一眼掠过,所以不做评论
成都使用 ruby 的公司不多,帮顶一个
2012 年 成都 4300
本来是做测试的,无意中接触到了 ruby,自学几个月后从原公司辞职,专职写 ruby,虽然现在转 python,但是 ruby 引领我走上了程序员的道路
这个版本又会将 rails 推上一个高峰
golang 中国满屏广告真的会亮瞎你的眼
@rei 因为人手原因,移动端没有足够资源来与后端对接接口,导致 web 端开发完成要上线,但是移动端又跟不上,所以才要做区分
@billy 目前就是这样做的,比较担心的就是别人更改 header 中的 value 去跳过验证
虽然我没有做过数据处理分析,但是个人觉得数据处理 python 比 ruby 要好些,并不是语言层面的,而是因为 python 在数据处理和分析方面的生态比 ruby 更好
@fighterleslie 因为工作需要,不过我依然深爱 ruby