我在我的应用中多次使用args[i]
的{{1}}方法。它看起来像这样......
NumberHelper
但我从来没有希望number_to_phone
成为number_to_phone(phone_number, area_code: true)
的地方。我应该如何将其默认为true?
答案 0 :(得分:1)
执行此操作的一种方法是编写自己的方法,仅接受电话号码参数和一些选项,将选项与:area_code
的默认值合并,然后调用#number_to_phone
。你可以在ApplicationHelper
中这样做:
# application_helper.rb
def num_to_phone(phone_number, opts={})
opts = {area_code: true}.merge(opts)
number_to_phone(phone_number, opts)
end
这样,您可以使用您的包装方法,而不必担心尝试修补原始方法。
答案 1 :(得分:0)
我想这就是我要找的东西。
# application_helper.rb
def formatted_phone(number, options={area_code: true})
number_to_phone(number, options)
end
答案 2 :(得分:-1)
1)您可以通过回调方法设置area_code:true,如: -
Class Model
before_create :set_area_code_to_true
private
def set_area_code_to_true
self.area_code = true
end
end
2)您可以设置区号的默认值,当通过迁移在表中添加新属性时,如: -
rails g migration add_default_value_to_table
def change
change_column :table_name, :area_code, :boolean, default: true
end