13

次の例によると、ベストプラクティスは何ですか?

ケース1

controller.rb ...

def index
  ...
  @group = params[:group]
  @team = params[:team]
  @org = params[:org]
  ...
end

index.html.haml

= link_to @group, '#'
= link_to @team, '#'
= link_to @org, '#'

ケース 2

controller.rb ...

def index
  ...

  ...
end

index.html.haml

= link_to params[:group], '#'
= link_to params[:team], '#'
= link_to params[:org], '#'

または、ハッシュ型のインスタンス変数を1つだけ渡すなど、別のオプションがあるかもしれません...

ありがとう!

4

2 に答える 2

7

一般に、特にパラメーターをクリーンアップする必要がある場合は、パラメーターをインスタンス変数として分割することをお勧めします。ビュー内で直接使用paramsするのは少し面倒で、ビューを受信パラメーターの構造に不必要に結び付ける効果があります。

入力パラメーターとビュー自体の間を仲介するのは、コントローラーの仕事です。ビューに影響を与えずにパラメーターを変更したり、パラメーターの要件を変更せずにビューを変更したりできるように、ある形式から別の形式に変換する必要があります。

なんらかの処理を行わずにパラメーターを渡すことは珍しいことです。ほとんどの場合、着信パラメータはデータベースからレコードを取得するために使用されるか、ある程度のルーティングに使用されます。

3 つのパラメーターが渡され、ページ上で文字どおりに使用されるのを見るのは、一般的なユース ケースではありません。他のものを決定するために使用できるこれらのものの1つへの参照を渡す代わりに、これらを渡すのはなぜですか?

例えば:

@team = Team.find_by_slug(params[:team_id])
@org = @team.org
@group = @team.group

これは、ほとんどの Rails アプリケーションが構築される方法です。

于 2013-04-04T23:59:13.363 に答える