2014-11-02 30 views
0

我有一堆白名单功能,对参数进行一些复杂的验证。如果你一定要知道,我有几个控制器,接受或者:模块,帮手还是其他?

  1. 一位顾客ID

    例如customer=cus_123412341234

  2. 一位顾客哈希

    例如customer[first_name]=Floating&customer[last_name]=Rock&...

记住,有几个控制器,做到这一点(可以在使用customer ID或散列的charges端点被创建例如电荷)。

现在我想知道其中我应该把这些方法(例如customer_hash_params(), customer_string_params(),..)?

我应该:

  1. 将它们放在lib/文件夹作为模块
  2. 将它们放在helpers/文件夹作为助手
  3. 别的东西..

想知道最佳实践是什么?

回答

2

简而言之,放入app/helpers的帮手可能为控制器和视图提供了一些逻辑。它是自动加载的意见,并需要包含在控制器内。置于lib文件夹中的模块或类通常会扩展某些控制器或模型逻辑。它不是自动加载到环境中,除非内application.rb

指定当你有一些验证逻辑,适合于lib目录,因为它不是视图中需要的。我假设这些验证是一种预验证,您的模型没有定义所有这些验证字段。否则,为您的模型编写一些自定义验证器将是一个好主意。

1

当我们有很长的方法来支持控制器或模型时,总是使用Rails中的Lib文件夹。以便我们可以从各种控制器调用这些方法。

如果这是要求,那么去lib文件夹,做一个类。在不同的控制器和模型中调用这些类方法。