ruby 在Helper中重构一个应用程序示例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 在Helper中重构一个应用程序示例相关的知识,希望对你有一定的参考价值。

# Module

module ApplicationHelper
  def load_collection(model, argument='name')
    model.classify.constantize.all.map { |s| [s.send(argument), s.id] }
  end

  def present(object, klass = nil)
    klass ||= "#{object.class}Presenter".constantize
    presenter = klass.new(object, self)
    yield presenter if block_given?
    presenter
  end
end

# Application examples:
# <%= f.input :company_id, label: 'Company', collection: load_collection('Company') %>
# <%= f.input :conservation_practices, label: 'Conservation Practice:', collection: load_collection('MmpStatic::FieldConservationPractice'), :include_blank => false %>
# <%= f.input :user_id, label: 'User', collection: load_collection('User', 'username') %>
#
#

以上是关于ruby 在Helper中重构一个应用程序示例的主要内容,如果未能解决你的问题,请参考以下文章

之前采用的是Helper类的方法重构时改用了扩展方法

ruby Rails Test Helper rails_helper.rb

ruby rspec system_helper

ruby form_helper.rb

ruby session_helper.rb

ruby application_helper.rb