我在控制器中编写了这段代码:
def list
@codes = Code.order("created_at")
@languages = Language.order('name').collect {|l| [l.name, l.coderay]}
@codes
是一个帖子数组。每个代码都有language
字段cpp
或text
字符串。它包含 coderay 令牌。
@languages
是格式的编程语言数组['C++', 'cpp'], ['Plain Text', 'text']
。
换句话说,格式Language
是:name, :coderay
. 我只在视图中使用它来制作选择框。所以我使用 :coderay 作为主键,但是 ruby:id
为这个模型添加了自己的 PK。并且这些模型没有关联。
IDE 给我写了这个警告:
控制器操作应该调用一个模型方法而不是初始 find 或 new
如果控制器操作在初始 .find 或 .new 之后包含多个模型方法调用,则此检查会发出警告。建议您在模型类内部实现所有业务逻辑,并使用单一方法访问它
解决此问题的最佳解决方案是什么?
1)在and之间添加1-to-m链接Codes
并Language
进行:coderay
PK。
2) 忽略此警告
3) 移至Language.order('name').collect {|l| [l.name, l.coderay]}
查看。
我认为最好的解决方案是(1),我该怎么做?