我正试图把一条线切成碎片
define_method("start_#{event}!") do |user_or_enrollment, setting_name = nil, node_id = nil|
打破这些长方法调用行的常规样式是什么?
答案 0 :(得分:2)
惯例是您通常不打断这样的行,而只是处理它。即使您努力做到,并非所有内容都可以用短线巧妙地表达出来。
使行更短的一种方法是减少变量名的长度:
define_method("start_#{event}!") do |on, setting = nil, node = nil|
或者使用选项样式定义:
define_method("start_#{event}!") do |on, options = { }|
在您这样称呼的地方:
start_x!(user, setting: setting_name, node_id: node.id)
答案 1 :(得分:1)
可以将块参数分成多行,就像定义方法参数时一样:
define_method("start_#{event}!") do |
user_or_enrollment,
setting_name = nil,
node_id = nil
|
# method body
end
或者,您可以根据个人喜好进行缩进,例如
define_method("start_#{event}!") do |
user_or_enrollment,
setting_name = nil,
node_id = nil
|
# method body
end
具体如何设置格式取决于您。在这种情况下,各种样式指南会建议不同的内容。但是,他们通常都同意,希望保持参数数量少,并尽可能避免将参数或参数列表分成多行。
答案 2 :(得分:0)
这主要基于观点。我会去的:
define_method(
"start_#{event}!"
) do |user_or_enrollment, setting_name = nil, node_id = nil|