0

私の Rails アプリにはUserモデルとIdeaモデルがあります。各ユーザーは多くのアイデアを持つことができ、各アイデアは 1 人のユーザーに属します (または誰も属しません)。ユーザーは、アイデア コントローラーのclaimアクションを使用してアイデアの所有権を取得し、アクションを使用してアイデアをリリースしreleaseます。

これまでのところ、本当に簡単です。しかし、私はこれをもう少しやりたいことに気付きました。そして今、どのように進めればよいかわかりません。報告の理由を指定します。

また、アイデアの主張に関するメトリクスも追跡したいと思います。アイデアが主張されてから送信済みとしてマークされるまでの期間 (ブログ投稿の管理用) などです。

無関係な質問で、誰かがClaim、この種の複雑な追跡のためにアプリにモデルが必要だと提案しました。これは私には理にかなっていますが、そのモデルがどのように構成され、どのように機能するかはよくわかりません。ログのようなものでしょうか?もしそうなら、各アイデアの現在のアイデアのステータスをどのように把握できますか?

これに関する洞察は大歓迎です。

4

2 に答える 2

1

すべてのユーザー アクションのログが必要なので、Reports と Claims を独立させたほうがよいと思います。

したがって、次のように見えるかもしれません

ユーザーhas_manyのアイデア

アイデアhas_manyクレーム

アイデアhas_manyレポート

コード:

class User < ActiveRecord::Base
  attr_accessible :name
  has_many :idea
end


class Idea < ActiveRecord::Base
  attr_accessible :desc, :title
  belongs_to :user
  has_many :claim
  has_many :report
end


class Claim < ActiveRecord::Base
  attr_accessible :status
  belongs_to :idea
end

class Report < ActiveRecord::Base
  attr_accessible :reason
  belongs_to :idea
end

それ以来、レールの移行により、タイムスタンプの列が追加されます。ステータスの変更などの時間差を計算できます。

于 2013-01-02T08:17:22.527 に答える
0

rubyはよくわからないけど、デザインに関しては、

アイデアを無効として報告すると、そのアイデアは失格になりますか?

そうでない場合は、報告されたアイデアをメモに含めるレポート モデルを作成できます。表現している間、投稿をレンダリングする前にそれを見ることができます.

于 2013-01-02T08:09:33.150 に答える