2012-02-15 9 views
0

問題

マイアプリはにサブクラス化され ProjElements、管理

:与え用Railsの部分ビューでスーパークラスオブジェクトの汎用メソッドをRailsに書き込む方法はありますか?

  • Milestone
  • Task
  • Decision
  • を...など
show.html.erbには、そのプロジェクト要素のインスタンスにコメントすることができます(例: Milestone XYZまたは Decision ABCにコメントを追加できます)。このように:

// display project element specific stuff 
// - e.g. show.html.erb for Milestone has milestone-specific stuff 
// - e.g. show.html.erb for Decision has decision-specific stuff 

// provide comment functionality 
// - e.g. for Milestone's show.html.erb, code looks like 

    <%= form_for [@milestone, Comment.new] do |f| %> 
     <% if @milestone.comments.size > 0 %> 
     ... 
     <% end %> 
     <% f.submit %> 
    <% end %> 

提案されたアプローチ

  • 私は、コメントコードの部分を使用し、DRYごとに、異なるプロジェクト要素のための様々なshow.html.erb景色を渡ってそれを使用する予定。部分的には別のプロジェクト要素に対処できるように、しかし...

  • はどのようにして、部分的に、Railsの道のための一般的なコードを書くのですか?

答えて

2

要素のサブクラスインスタンスは、ローカルハッシュで渡すことができます。アプリ/ビュー/マイルストーン/ show.html.erbでアプリで

render :partial => 'shared/comments', :locals => { :element => @milestone } 

/ビュー/共有/ _comments.html.erb

<% form_for [element, Comment.new] do |f| %> 
+0

恐ろしい:)おかげで –

関連する問題