0

私は現在、人々がプロジェクトを追加してからプロジェクトに更新を追加するアプリを構築しています。たとえば、これらの更新に番号を付けます。

アップデート 1、アップデート 2 など...

リスト ビューだけでなく、上部に更新番号が表示される個別ビューもあります。

レコードをループしてリストを作成するときに使用するさまざまなインデックス カウント ソリューションを見つけましたが、個々のビューに更新番号を表示する方法に行き詰まっています。

更新番号をレコードと一緒にデータベースに保存する必要がありますか?

私のスキーマの関連部分:

create_table "projects", :force => true do |t|
    t.string   "title"
    t.string   "image"
    t.datetime "created_at", :null => false
    t.datetime "updated_at", :null => false
    t.integer  "user_id"
  end

  add_index "projects", ["user_id"], :name => "index_projects_on_user_id"

  create_table "updates", :force => true do |t|
    t.string   "title"
    t.text     "text",       :limit => 255
    t.datetime "created_at",                :null => false
    t.datetime "updated_at",                :null => false
    t.integer  "project_id"
  end

  add_index "updates", ["project_id"], :name => "index_updates_on_project_id"
4

4 に答える 4

0

created_at で注文し、each_with_index でビューを反復処理できます。これには、スキーマの変更は必要ありません。act_as_listも使用できます。

于 2013-04-03T12:12:27.860 に答える
0

Billy Chan が最良の回答をしていますが、別の方法を探している場合は、そのプロジェクトの Updates 内で自分の Update を探し、そのインデックスを見つけることができます。

@update = Update.find params[:id]
@update_number = Update.where(project_id: @update.project_id).order("created_at DESC").index(@update)

ただし、より長く、より多くのクエリなどがあります。そのロジックをDBに保存することをお勧めします。

于 2013-04-03T12:21:53.530 に答える