【问题标题】:What is the best way to give a model access to params hash in Rails?让模型访问 Rails 中的 params 哈希的最佳方法是什么?
【发布时间】:2012-12-23 01:22:03
【问题描述】:

这似乎违反了 MVC,所以我将解释我要做什么:

我的模型调用 API,API 的 URI 取决于 params 哈希。 (params 哈希存储 Rails 应用的 URL)。

我创建了一个模块来混合到模型中(因为模型与 API 调用无关),但还没有弄清楚如何将参数放入模块中。

如果可能,我想用 params 哈希初始化模块,但不知道在哪里做。模型上的before_create 可以工作,但那是在不知道参数的model.rb 文件中。

【问题讨论】:

  • 请通过发布您已应用于该问题的一些properly formatted 代码来改进您的问题。此外,请包含格式正确的预期输出示例,以便人们了解您想要达到的结果。
  • 不太明白你想要做什么。例如,您还没有解释为什么不能只将 params 哈希或其中的一部分从控制器传递给模型(在 Rails 中经常这样做)。
  • 为什么不直接把参数传给方法呢? Model.method(params)
  • 因为我不认为传递参数是一个好方法。

标签: ruby-on-rails ruby api model-view-controller params


【解决方案1】:

几个想法,取决于你的需要:

在每次调用时将参数传递给模型,如果它们变化很大的话。你可以做一个类方法或实例方法 -

Model.api_call params[:field]
@model.api_call params[:field]

将参数保存为模型中的类变量:

Model.set_parameters(params)

def self.set_parameters(params)
  @@params = params
end

# access it in methods with @@params

【讨论】:

    猜你喜欢
    • 2021-04-17
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 2010-10-21
    • 2012-06-23
    • 1970-01-01
    相关资源
    最近更新 更多