2

そのため、多くの機能を共有するさまざまなコントローラーがあり、それらの間で同様の機能を共有する方法があるかどうか疑問に思っています。

例:これ:

= link_to 'Edit', dvd_path(dvd), :class => 'btn'

コントローラ間で変更されるのはオブジェクトだけで、DVDではなく本やゲームになります。したがって、各コントローラーを書き直すことなく、そのコントローラーの正しいパスを使用するパーシャルを作成する方法が必要だと思います。そして、オブジェクトを送信する必要はありません。

アイデアは大歓迎です。

編集

@defaye:私がやろうとしているのは、上記のコードを再利用して、7つほどの異なるコントローラーに適用することです。上記のコードは、常に同じである一連のリンクとパスの単なる例であり、変更されるのは、dvd_path(dvd)がbook_path(book)などになることだけです。

私はそれを行うための最も単純でより簡単な方法が欲しいです。

実際、複数のコントローラーが非常に似ているため、複数のコントローラーを処理する同じビューを使用できるかどうか疑問に思っています。これは素晴らしいでしょう!

ありがとう。

4

1 に答える 1

0

コードがほんの数個のメソッドである場合、パーシャルはまったく必要ありません。ヘルパーがお手伝いします。

これが例です。ApplicationHelper で定義できます。

# application_helper.rb
def link_to_edit(object)
  link_to('Edit', polymorphic_path(object, :action => 'edit'), :class => 'btn')
end

そしてあなたの見解では

= link_to_edit(object)
于 2012-04-26T10:00:05.487 に答える