2012-03-05 8 views
7

Iなど、ここ数ヶ月のためにレールを使用して、と私は私のニーズへのレールを操作するプロジェクト&を書いて非常に快適だしてきたRailsの変更:上級ユーザーは、変更する必要があるものをどのように見つけ出すのですか?

最近、私は少し、より高度な取得しようとしてきました、だから私は既存のレールコードベースを変更/追加しようとしました。新しいフォームヘルパーメソッドを追加し、responds_to:pdfメソッドなどを追加しました。私は多くの問題を抱えてきました。

難しいのは、修正する必要があるコードを学習することです。そのコードがどこにあるのか、他のファイルに関連するコードを見逃さないようにする方法について説明します。私は、人々がこれをやることを学ぶ方法があると思っていますが、現時点では私はほとんどがちょうど推測しています。

私の質問は、Railsの人々は、修正する必要があるコードをどこで編集するのですか。&編集の方法は?それはあらかじめ親しみを持って知っておく必要があるようですが、どこで(そして何を)編集するのかを理解するための簡単な方法が必要だと思います。感謝

任意のアイデア...歓声

+0

あなたが説明したことは、私が行うことについてはかなり正確です! –

+0

素敵な質問ですが、私は他の人たちのやり方を知りたいです。私は、[API doc](http://apidock.com/rails)を使って、私がその力学を理解するまでソースコードを覗いてみるだけです。知識を得る別の方法は...スタックオーバーフローです!私がレールを学び始めたとき、私はすべてのレール関連の質問をスキャンして、自分自身で答えを見つけようとしました。これをすると、私はレールの内部について多くのことを学びました。 しかし、私はこの質問がここに属しているかわからない。多分http://codereview.stackexchange.comに? –

答えて

3

私は非常にあなたがあなたのRailsの開発の次のレベルに行くことができますエンジンやカスタマイズの種類を構築、高度なプロジェクトを通じて行くホセValimのCrafting Rails Applications

をお勧めします。サイトから

この本は、あなたが 発電機、テンプレートハンドラ、国際化、ルーティング、および 応答を含むRailsの3の内部の仕組みを理解するのに役立ちます。

+0

応答をありがとう。私はCraftingを読んで楽しんだが、フレームワークの馴染みのない部分を理解するための方法論には徹底的な洞察は得られなかった。宝石を作るための方法論、そうですが、フレームワークが開かれているところでは、変更されるフレームワークの部分をどのように理解するのかというよりは、単に「これをタイプする」というアプローチが多かったようです。 – PlankTon

+0

@unclaimedbaggageもしあなたがCraftingを習得したなら、それはあなたが潜んでいる時間です。レーキテストを実行し、変更を加えてテストを再実行してください。繰り返す。そのレベルでのガイドツアーはありません。 –

-2

あなたが求めている、何がどのようにMVC作品です。基本的に言うことができます:

1.)モデルにロジックを入れてください!モデルはすべてが旋回するピボットです。

2.)コントローラーは、モデルとビューの間の仲介人です。ビューに表示されるはずのデータベースからデータを選択することに関連するロジックはここには載せないでください。 1つの選択ロジックを複数回使用すると、モデルにscopeが作成され、コントローラで使用されます。

3.)表示は物事を表示するためだけです!ここに論理を入れないでください!すべてのロジックはモデルから得られ、データはコントローラから得られます。ここで使用する唯一のロジックは、表示されるべきデータの配列によるループです。

次に、欠落しているものがあります。あなたが外部サービスに関連するタスクを持っている場合、SOAPサービスといってもそれについてクラスを書くことができます! scaffolderによって生成されたActiveRecord :: Baseの継承を使用しています。他のモデルでもこの​​クラスを呼び出すことができます。これをコントローラーに置いたり、コードを必要とするすべてのクラスにコピーしたりしないでください!滞在DRY(自分を繰り返さないでください)。それのためのクラスを作成し、それを他のモデルに含めるだけです!

データベースの基本事項:データベースの他のフィールドから計算できるデータを保存しないでください!あなたは必要なものを計算するメソッドを追加することはできますが、重複から始めることはできません。

+0

応答してくれてありがとう。私はレールとRubyスクリプトを統合するのが快適です。それは私を恐れるフレームワーク自体を拡張/オーバーライドしています。 ;-) – PlankTon

関連する問題