-3

Sinatraアプリケーションにはコードがあります

gef '/123' do
  @var1 = # some calculations
  @var2 = # some calculations
  #..... many of them

  haml(:"view123")
end

そして、すべてのインスタンス変数はで使用されview123ます。このような多くの変数の代わりにハッシュを使用することの利点はありますか?

gef '/123' do
  hash_var = {}
  hash_var[:var1] = # some calculations
  hash_var[:var2] = # some calculations
  #..... many of them

  haml(:"view123")
end
4

1 に答える 1

2

あなたは正しい方向に進んでいると思います。この非常に抽象的な意味でアドバイスするのは難しいですが、一般的に# some calculationsはビジネスロジックのように見えます。そして、ビジネスロジックはモデルに属しています。

代わりにモデルはどうですか?これらの計算を実行する新しいクラスを作成し、それをインスタンス化して、インスタンスをビューに渡します。コントローラ/ルートハンドラは無駄のないクリーンな状態を維持し、多くの多くの計算行がすべて、その専用のファイルに組み込まれています。身なりがきちんとして。

get '/123' do
  @calc = CrazyCalculator.new
  haml(:view123)
end

view123.erb:

<ul>
  <li>Calc1: <%= @calc.calc1 %></li>
  <li>Calc2: <%= @calc.calc2 %></li>
  <li>Calc3: <%= @calc.calc3 %></li>
  <li><!-- many other calculation methods --></li>
</ul>
于 2013-02-08T18:50:49.340 に答える