Rails lib directory

前端 未结 1 1221
广开言路
广开言路 2021-01-07 17:01

Question about lib directory.

What are good practices in using the lib directory?
When should it be used over app/models or app/helpers?
And somewhat relat

1条回答
  •  时光说笑
    2021-01-07 17:21

    One use of the lib directory (how I use it most often) is to share code between models to stay DRY. For example, if you are defining a tag_tokens attribute on many different models for use with a tokenizer input, you could put that in "tag_accessor.rb" or something, place it in /lib', and then include it with include TagAccessor. The ruby file might look like:

    module TagAccessor
      def tag_tokens
        tags.map(&:name).join(',')
      end
    
      def tag_tokens=(names)
        self.tag_ids = names.split(",").uniq
      end
    end
    

    (This is an example from one of my apps, which is why it's so specific). Then to load the /lib folder in Rails 3, place this in your application.rb:

     config.autoload_paths += %W(#{config.root}/lib)
    

    0 讨论(0)
提交回复
热议问题