0

私は活動モデルを持っています

id | activity_model | activity_type | user_id | activity_id | created_at | updated_at|
1  | Article        | Created       | 1       |   25        | a time     |  a time   |
2  | Headline Story | Created       | 1       |   26        | a time     |  a time   |

** activity_model は文字列です

ここで、私のコントローラーが持っているとしましょう (2 番目の部分がモデルにあるため、実際にはよりクリーンです):

@user_activity = Activity.where(user_id: 1).all

私の見解は次のようになりたいです:

      - @user_activity.each do |activity|
        - if activity_model == "Article"
          = link_to Article.find(activity.activity_id).name, activity
        elsif activity_model == "Headline Story"
          = link_to HeadlineStory.find(activity.activity_id).name, activity
        = activity.activity_type
        = "#{time_ago_in_words(activity.created_at)} ago"

上記のブロックの if ステートメント部分に注目しています。

私が持っている質問はです。これらのさまざまなモデル タイプを反復処理しているときに、link_to をきれいにするにはどうすればよいですか? 私はビューで検索を使用していますが、それは正しくありません..

4

1 に答える 1

0

オブジェクトを繰り返し処理し、同時にActivityオブジェクトを見つけたい場合は、いくつかの方法でこれを行うことができます。Article

  • コントローラーにハッシュ テーブルを設定し、それをビューで使用します。
  • コントローラー内に入力するビューモデルを作成し、それを使用してビューをレンダリングします。
  • ビュー内で使用できるヘルパー関数を作成します。

最初と最後のオプションは、最も早く実装できます。

于 2013-01-08T02:53:35.293 に答える