Rails 3.2我继承了一个应用程序,它的架构包括管理部分和非管理部分。所以,我有:
app/views/admin/....
app/views/....
app/helpers/admin/...
app/helpers/....我不知道如何从视图中调用助手方法。让我们举一个例子:
在app/helpers/admin/user_helper.rb中,如果我有:
def compute_total qty, price, commission
(qty * price) + commission
end在app/helpers/user_helper.rb中,如果我有:
def compute_total qty, price
qty * price
end我有两个问题:
发布于 2017-04-03 09:55:52
在rails上编写的视图助手方法对所有视图都可用,并混合在一起(从Rails 4开始)。每当名称中有重复时,rails将按字母顺序选择后一个方法来处理这个问题。例如,
module CustomHelper
def compute_total qty, price, commission
......
end
module KustomHelper
def compute_total qty, price
......
end在上面的例子中,将始终被调用的是来自KustomHelper的那个。
对于第二个问题,我建议只使用一种方法来处理这两种情况,如下所示:
def compute_total(qty, price, commission = 0)
(qty * price) + commission
end您可以在任何地方声明该方法,并在任何地方调用它,无需担心。
好参考:https://mixandgo.com/blog/the-beginners-guide-to-rails-helpers
更新:
我没有看到OP使用了下面的4版本,所以对于OP的特定问题的解决方案:
# lib/custom_lib.rb
class CustomLib
def compute_total(qty, price, commission = 0)
qty * price) + commission
end
end然后从视图中调用它:
<%= CustomLib.new.compute_total(qty, price) %>https://stackoverflow.com/questions/43158468
复制相似问题