• Air 真的够用了 入手半年时间,我感觉 预算充裕的话直接入手 8G 内存的 别的都没问题 比 Pro 更轻快

  • 报名 上次刚好碰上去上海出差 没赶上

  • 给介绍下南京的 Rails 公司呗

  • 给的东西太少了,好多同学看了都不知道怎么回复你 你可以贴一下 比如你改了什么东西后 next_page 的链接就变了 变成什么了

  • 安装 rails 出现了问题 at 2012年03月12日

    楼主的犯的错误是安装了 zsh 却没把 rvm 的路径写进去

  • link_to 自然可以 既然报 route 错误 就是找不到这个 rar 文件 建议楼主贴出来报错信息+paperclip 配置

  • 不同意楼上的观点

  • So, this is Ryan 哈哈 at 2012年03月09日

    #1 楼 @bluecoda 拜 Ryan 所赐

  • #7 楼 @tualatrix 俺是个菜鸟还,想听听大家的高见 学习学习

  • 所以 怎么报名呢

  • 所以 怎么报名呢

  • #6 楼 @ywencn 呵呵 对的对的

  • #3 楼 @JeskTop 对的 user 表中加上 level 然后直接在 ability 中写权限就好了

  • #24 楼 @huacnlee 同意,特别是 OS 的选择 虽然说用什么 OS 对高手来说都一样 但是想让一个新手快速入门,我觉得 Mac 的门槛都是很低的 (虽然很贵呢) Linux 下最起码我认为找不到一个适合新手的简单易用 Editor windows 就各种诡异了

  • 前段时间做了 devise+cancan 的权限管理,感觉还是很好的 用 devise 做用户管理 用 cancan 做用户权限管理 PS: cancan 的 WIKI 我认为已经相当全面了 Super easy ^.^ 可以给每种用户一个 level 然后通过 level 来控制权限 如果权限比较多的话 --> DSL 存储权限表 少量的话就直接写 Ability.rb 中 假设没有 namespace,已安装好 cancan

    # case 权限较少
    # current_user 由devise 生成
    class Ability
      include CanCan::Ability
    
      def initialize(current_user)
        return unless current_user
        case current_user.level
        when 0
          can :manage, :all
        when ......
          # 你的权限方案
        else
          # some code
        end
      end
    end
    =========================================
    #case 较多权限
    Table: users
    id | username | ... | role_level
    Table: permissions
    id | role_level | user_id | subject_class | action
    
    # model
    user.rb
     has_many: permissions
    permission.rb
     belongs_to: user
    
    1. 根据用户于权限的关系
    # cancan
    class Ability
      include CanCan::Ability
    
      def initialize(current_user)
        return unless current_user
        current_user.permissions.each do |p|
          can p.aciton.to_sym, p.subject_class.constantize
        end
      end
    end
    
    2. 根据角色于权限的关系
    class Ability
      include CanCan::Ability
    
      def initialize(current_user)
        return unless current_user
        permissions = Permission.where(:role_level => current_user.role_level).all
        permissions.each do |p|
          can p.aciton.to_sym, p.subject_class.constantize
        end
      end
    end
    
    
    

    最后别忘了给 controller 上锁哈

    cancan 还是很灵活的 我写的肯定不是很好 ,欢迎指正。

    permissions = Permission.where(:role_level => current_user.role_level).all 不好意思 这个改过来了,这行是正确的 Permission.where(:role_level => current_user.role_level) 不是数组 只是一个关系对象 加上 all 才会进行查询 生成一个数组

  • #21 楼 @tiseheaini 建议去看下 codeschool 的 RubyForZombies. 传送门:codeschool

  • Rails 3.1 二级联动的问题 at 2012年03月01日

    Linkage_select 插件实现基本的三级联动

  • 像你帖子中的方法操作完毕后,这样写

    <%= javascript_include_tag "/assets/jquery.fancybox-1.3.4" %>
    

    试试

  • View

    <%= link_to, "打开窗口", "#", :onclick => "getUrl()" %>   #html
    
    function getUrl() {
      $.get("your_action_url", function(data){
         window.open(data)
    })
    }
    

    Controller

    def your_action
      #your logic (build a url you want)
      render :text => url_you_just_build 
    end
    

    代码不一定正确,我觉得这样的逻辑应该能满足你的要求,试试看。

  • 前几天由于一个插件和 application.js 一起打包编译就报错 所以我单独摘了出来 layout/application.html.erb

    <%= javascript_include_tag "/xheditor/xheditor-1.1.12-zh-cn" %>
    

    在这个目录可以找到public/xheditor/

  • 部署到生产模式的问题 at 2012年02月25日

    在 config/environment/production.rb 中

    # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
    config.assets.precompile += ['style.css']
    

    在生产环境中执行

    ~$ bundle exec rake assets:precompile
    
  • String.new("百万条数据")

  • development:
      adapter: mysql2
      encoding: utf8
      reconnect: false
      database: fosun_development
      pool: 5
      username: root
      password:  
    

    like this, then

    ~$ bundle install
    ~$ rake db:create
    

    如果还不行,删掉重建 :p

    # 指定数据库创建项目
    rails new -d mysql
    
  • 新手问题:assests pipline at 2012年02月22日

    1.图片加载

    # app/assets/images/1.jpg
    <%= image_tag "1.jpg" %>
    
    1. rake precompile 的作用是对 assets 中的文件进行打包,添加指纹识别,方便 nginx,apache 这样的服务器去静态的 serve 在 config/environment/*.rb 中定义了: ruby # Disable Rails's static asset server (Apache or nginx will already do this) config.serve_static_assets = false 设置为 true 就可以直接 servepublic/assets中预编译好的资源文件 由于预编译只编译application.cssapplication.js和其他不是 js,css 后缀的文件 所以最好在 application.js 中如下引用 ruby //= require self //= require_tree . js 和 css 的预编译产生结果不同,js 如上引用后只产生一个 application.js,所有代码压缩在它里面 而 css 只是简单的@import所以仅仅像上述引用,编译后还是提示找不到,如下设置 ruby # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added) config.assets.precompile += ['what_ever_you_want'] 添加上所有的 css 文件 在 production 环境中如上所述由于会压缩 js 文件所以有些 js 脚本压缩后 (不知道什么原因,大概是不够规范) 会报错,影响程序运行,所以尽量不要用中文吧
  • 几个问题 at 2012年02月22日
  • devise 自定义 登录页面 at 2012年01月17日

    用自己的页面代替默认登陆页面 我用自己的项目给楼主写个例子吧 楼主想为 Account 进行 devise routes.rb

    devise_for :accounts, :controllers => { :sessions => "admin/sessions" }
    

    然后将 sessions_controller.rb 拷贝到如下目录

    app/controllers/admin/
    

    同时新建以下 view

    app/views/admin/sessions/new.html.erb   #登陆页面
    

    当然楼主可以把其他的页面也搬过来

    贴一下路由信息

    $ rake routes
    new_account_session GET    /accounts/sign_in(.:format)  {:action=>"new", :controller=>"admin/sessions"}  #登陆
    account_session POST   /accounts/sign_in(.:format)  {:action=>"create", :controller=>"admin/sessions"}  #新建
    destroy_account_session DELETE  /accounts/sign_out(.:format)  {:action=>"destroy", :controller=>"admin/sessions"}  #注销