现在将整个页面汉化一下
首先,我们已经在application.rb里配置了local为 zh-CN, 然后到
http://github.com/tsechingho/rails-i18n/blob/master/rails/locale/zh-CN.yml
下载已经配置好的中文包到config/locales里,这样,rails的中文化已经做好了。
接下在做devise的汉化。
devise自己有自己的i18n文件,所以我们将config/locales里的devise.en.yml重命名为devise.zh-CN.yml,将里面的英文翻译为中文即可。
接下来做view上面的汉化
首先执行
rails g devise:views
就会在views下面生成devise的默认页面, 在里面进行修改即可(这一步生成的页面是erb).
接下来是cancan,负责授权工作
首先,建立app/models/ability.rb,内容如下:
class Ability
include CanCan::Ability
def initialize(user)
if user.role == 'admin'
can :manage, :all
else
can :read, :all
end
end
end
在app/models/user.rb里加入
class User < ActiveRecord::Base
ROLES = %w[admin moderator author banned]
end
在user.rb里加个字段
script/generate migration add_role_to_users role:string
rake db:migrate
这样,就可以在views里调用can?或着cannot?方法来判断用户角色
<% if can? :update, @article %>
<%= link_to "Edit", edit_article_path(@article) %>
<% end %>