2011-07-21 12 views
0

Userオブジェクトに関数を追加したいので、これを行うためのユーザコントローラを作成しました(私はDeviseを使用していますので、既存のDeviseユーザに関数を追加する必要があります)オブジェクト)。私は、私のレールプロジェクトに「ヘルパー」というフォルダがあることに気づきました。コントローラーの代わりに余分な機能を置くべきですか?その方法は、匿名のセッションを可能にすることです。Helpers vs Controller in Rails

答えて

4

シンコントローラと脂肪モデル。レールアプリケーションの作成時にこの原則に従ってください。あなたのロジックといくつかの計算をモデルに必要ならば入れてください。コントローラは、ビューに渡すデータとデータを表示する方法を制御するために使用されます。ヘルパーのビュー表示に役立つメソッドだけを置く。例えばヘルパーの中に数字を形作るためのコードを書いてください。コントローラ間でいくつかのソースコードを共有したいがモデルに収まらない場合は、ライブラリを作成することができます。

1

常に薄いコントローラが優れています。だから、ヘルパーフォルダにあなたのコントローラ/ビューを "助ける"ものを入れてください。

2

あなたはUserクラスにメソッドを追加したい場合は、いいえ、user.rbファイルに追加します。あなたは、コントローラとビュー内で使用可能な方法をしたい場合は

class User < ActiveRecord::Base 

def full_name 
    # logic 
end 

end 

が、その後、定義ヘルパーディレクトリの中にヘルパーを追加してそこに追加します。