私はコントローラでこのコードを書きました:
def list
@codes = Code.order("created_at")
@languages = Language.order('name').collect {|l| [l.name, l.coderay]}
@codes
投稿の配列です。各コードには、または文字列language
のフィールドがあります。coderay トークンが含まれています。形式のプログラミング言語の配列です。
つまり、 の形式はです。ビューでのみ使用して、選択ボックスを作成します。なので、:coderay を主キーとして使っていますが、このモデルには ruby が独自の PK を追加しています。そして、これらのモデルはリンクされていません。cpp
text
@languages
['C++', 'cpp'], ['Plain Text', 'text']
Language
:name, :coderay
:id
IDE から次の警告が表示されます。
コントローラー アクションは、最初の find または new
以外の 1 つのモデル メソッドを呼び出す必要があります モデル クラス内にすべてのビジネス ロジックを実装し、単一のメソッドを使用してそれにアクセスすることをお勧めします。
この問題を解決するための最良の解決策は何ですか? 1) と の間に
1 対 m のリンクを追加し、 PKを作成します。
2) この警告を無視します。
3) ビューに移動します。Codes
Language
:coderay
Language.order('name').collect {|l| [l.name, l.coderay]}
最善の解決策は(1)だと思いますが、どうすればよいですか?