• Ruby 不讲究切面编程吗? at 2012年08月01日

    #8 楼 @ruohanc require 'active_support/callbacks'

  • Ruby 不讲究切面编程吗? at 2012年08月01日

    #5 楼 @ruohanc 3 楼说的 activesupport callbacks 就是成熟稳定的啊 Rails 里用的

  • Ruby 不讲究切面编程吗? at 2012年08月01日

    #4 楼 @Saito 也可以用继承或 alias_method_chain

    [1] pry(main)> class Cool
    [1] pry(main)*   def say
    [1] pry(main)*     puts "cool"
    [1] pry(main)*   end  
    [1] pry(main)* end  
    => nil
    [2] pry(main)> class CoolWithLog < Cool
    [2] pry(main)*   def say
    [2] pry(main)*     super
    [2] pry(main)*     puts "log it"
    [2] pry(main)*   end  
    [2] pry(main)* end  
    => nil
    [3] pry(main)> CoolWithLog.new.say
    cool
    log it
    
  • Ruby 不讲究切面编程吗? at 2012年08月01日

    Rails 插件不都是用的这种方式么

  • #16 楼 @smoothdvd 都已经返回 false 值了,用defined?做什么?

  • #12 楼 @smoothdvd 虽然还是没明白你的意思。。但是如果表单设计的让代码很难表示,说明表单设计的有问题。

  • #10 楼 @smoothdvd 你说什么叫 boolean 是否存在?

  • #3 楼 @smoothdvd 看到频繁用.nil?的就知道用 Ruby 不超过半年... 正常的写法就是:

    if condition
    else
    end
    

    如果是 rails 表单传过来的值,可能有空字符串或换行:

    if params[:xxx].present?
    else
    end
    

    也有需要用.nil?的时候,就是要和 false 做特别区分的:

    # 类似5楼的例子
    enabled = true if enabled.nil?
    
  • 很正常

  • sunspot 分词问题 at 2012年07月31日

    #8 楼 @huacnlee solr 的社区大一些,elastic 需要自己去建分片和 mapping 吧。自带中文分词以前没注意到。

  • sunspot 分词问题 at 2012年07月31日

    #6 楼 @huacnlee 啊?elasticsearch 简单吗?我感觉用起来好复杂,github 在用这个,不过 github 的搜索结果真不咋样。

  • sunspot 分词问题 at 2012年07月31日

    #3 楼 @quakewang 可以了 多谢!

  • sunspot 分词问题 at 2012年07月31日

    #1 楼 @quakewang 我在本地用那个带 mmseg4j 的 server 测试,效果也一样。是还需要其他配置吗

  • 把是否为管理员签名到 cache key 里,比如: key ->"cache/xx/x/xxx/#{current_admin?}"

  • 自相矛盾

  • 这样的功能如何实现? at 2012年07月29日

    取出来再 suffle

  • #108 楼 @dfang 其实每一本讲 ruby 基础的书上面都会有这些符号的说明的。学基础的东西要看书和文档,论坛是用来讨论书和文档上面找到不到的东西或有争议性的东西。这是我个人的观点:-)

  • ActiveRecord::Base.connection.execute("select id,created_at from users limit 10 union select id,created_at from articles limit 10;")

    要注意两个表的列数要相同。

  • 跑题一下:

    类变量类的实例变量是有区别的。

    1.类的实例变量就和普通变量一样,存在对象里。只不过这个类是 Class,因为所有的类都是 Class 的实例。这就是 Ruby 里说的一切都是对象。

    2.类变量我的理解是:类范围内的全局变量,他可以被实例和类本身访问/修改,可以被继承。

  • [求助] rails 路由混乱了 at 2012年07月28日

    #7 楼 @kikyous 你看看@note这个变量的 id 是什么,如果不存在就说明是这里的问题

  • #26 楼 @zlx_star 不是,举个简单的例子,我想知道 User.first 这个方法在哪里定义的:

    script/rails runner "require 'tracer';Tracer.on{User.first}" > log/tracer.log
    
    #0:/home/hooopo/.rvm/gems/ruby-1.9.3-p0@rubyist/gems/activerecord-3.2.6/lib/active_record/querying.rb:5:ActiveRecord::Querying:-:     delegate :find, :first, :first!, :last, :last!, :all, :exists?, :any?, :many?, :to => :scoped
    #0:/home/hooopo/.rvm/gems/ruby-1.9.3-p0@rubyist/gems/activerecord-3.2.6/lib/active_record/scoping/named.rb:30:ActiveRecord::Scoping::Named::ClassMethods:>:         def scoped(options = nil)
    #0:/home/hooopo/.rvm/gems/ruby-1.9.3-p0@rubyist/gems/activerecord-3.2.6/lib/active_record/scoping/named.rb:31:ActiveRecord::Scoping::Named::ClassMethods:-:           if options
    #0:/home/hooopo/.rvm/gems/ruby-1.9.3-p0@rubyist/gems/activerecord-3.2.6/lib/active_record/scoping/named.rb:34:ActiveRecord::Scoping::Named::ClassMethods:-:             if current_scope
    #0:/home/hooopo/.rvm/gems/ruby-1.9.3-p0@rubyist/gems/activerecord-3.2.6/lib/active_record/scoping.rb:125:ActiveRecord::Scoping::ClassMethods:>:       def current_scope #:nodoc:
    #0:/home/hooopo/.rvm/gems/ruby-1.9.3-p0@rubyist/gems/activerecord-3.2.6/lib/active_record/scoping.rb:126:ActiveRecord::Scoping::ClassMethods:-:         Thread.current["#{self}_current_scope"]
    #0:/home/hooopo/.rvm/gems/ruby-1.9.3-p0@rubyist/gems/activerecord-3.2.6/lib/active_record/scoping.rb:127:ActiveRecord::Scoping::ClassMethods:<:       end
    后面还有很多。。。
    
  • [求助] rails 路由混乱了 at 2012年07月28日

    #4 楼 @kikyous 首先路由匹配是正确的:

    Started GET "/messages/1" for 127.0.0.1 at 2012-07-28 16:06:57 +0800
    Processing by MessagesController#show as HTML
      Parameters: {"id"=>"1"}
    

    然后,看具体错误:

    ActionController::RoutingError (No route matches {:action=>"edit", :controller=>"notes", :id=>nil}):
      app/views/messages/show.html.erb:18:in `_app_views_messages_show_html_erb__799486363__610448278'
    

    是在 app/views/messages/show.html.erb:18 这个文件的第 18 行,可以贴一下代码么

  • [求助] rails 路由混乱了 at 2012年07月28日

    #2 楼 @kikyous 可以贴一下这个请求的完整日志么

  • #4 楼 @hexawing 你这个错误信息很明显啊

    ActiveRecord::HasManyThroughSourceAssociationNotFoundError: Could not find the source association(s) :user in model Department. Try 'has_many :directs, :through => :departments, :source => <name>'. Is it one of :departments_users, :users, :departments_managers, or :managers?
    

    has many through 要加 source 的,标识你的 sql 最终是从哪个表里面获取数据。

  • [求助] rails 路由混乱了 at 2012年07月28日

    你确定你的message#show相关部分没有重定向逻辑或调用edit_note_path什么的?还有你要先查看日志,确定请求是直接访问的messages#show还是直接报错。

    如果没有你可以去给 rails 提 issue 了。。

  • 找 bug 的时候常用 tracer,这东西查源码也可以。

  • 这个只能在 sunspot_solr_mmseg4j 目录启动么 在其他路径启动会报错。

  • #21 楼 @huacnlee 不会。开发者自己输入的符号是有限的。如果不小心把用户输入的字符串转换成符号,就会有恶意用户不断重复发送不同的符号,最后这些符号不被回收,ruby 进程内存暴涨。。

  • Pro Tip: symbols are not garbage collected, so avoid using to_sym on strings from user input.