具有独特 To_do_list 的用户
User with unique To_do_list
我正在用 User, Article and To_do_list
做一个应用
我正在使用 gem bookmark_system 为文章添加书签。
https://github.com/pmviva/bookmark_system
收藏的文章列表就是我要在 To_do_list 中显示的内容。
我希望每个用户只有 1 个 To_do_list。我还希望用户能够检查其他用户 to_do_list.
用户模型:
class User < ActiveRecord::Base
act_as_bookmarker
has_many :articles
has_one :to_do_list
end
文章型号:
class Article < ActiveRecord::Base
belongs_to :user
act_as_bookmarkee
end
to_do_list:
class ToDoList < ActiveRecord::Base
belongs_to :user
end
to_do_lists_controller.rb:
class ToDoListsController < ApplicationController
def index
@articles_bookmark = current_user.bookmarkees_by(Article)
end
迁移:
class ToDoLists < ActiveRecord::Migration
def change
create_table :to_do_lists do |t|
t.belongs_to :user, index: { unique: true }, foreign_key: true
end
end
end
架构:
create_table "to_do_lists", force: :cascade do |t|
t.integer "user_id"
end
add_index "to_do_lists", ["user_id"], name: "index_to_do_lists_on_user_id", unique: true
路线:
resources :to_do_lists
路径:
to_do_lists GET /to_do_lists(.:format) to_do_lists#index
POST /to_do_lists(.:format) to_do_lists#create
new_to_do_list GET /to_do_lists/new(.:format) to_do_lists#new
edit_to_do_list GET /to_do_lists/:id/edit(.:format) to_do_lists#edit
to_do_list GET /to_do_lists/:id(.:format) to_do_lists#show
PATCH /to_do_lists/:id(.:format) to_do_lists#update
PUT /to_do_lists/:id(.:format) to_do_lists#update
DELETE /to_do_lists/:id(.:format) to_do_lists#destroy
我对两件事感到困惑:
1 - 用户将需要 "create" a to_do_list,但我不希望用户创建它,我希望它已经创建并且仅在用户创建时显示项目收藏了一些东西。
2 - 让一个用户访问其他用户也让我产生了一些疑问,一旦我弄清楚了上面的观点,也许这会更清楚。
请给我一些灯,因为我在这里有点迷路。提前致谢。
我最终意识到我已经有了我想要显示的可用数据,实际上不需要创建任何控制器等。
针对这种情况,我在 user_controller 中创建了方法,然后创建了路由来显示我想要的内容。
如果我想让用户在 to_do_list 中创建任务,to_do_list 控制器就有意义了。
我正在用 User, Article and To_do_list
我正在使用 gem bookmark_system 为文章添加书签。 https://github.com/pmviva/bookmark_system
收藏的文章列表就是我要在 To_do_list 中显示的内容。
我希望每个用户只有 1 个 To_do_list。我还希望用户能够检查其他用户 to_do_list.
用户模型:
class User < ActiveRecord::Base
act_as_bookmarker
has_many :articles
has_one :to_do_list
end
文章型号:
class Article < ActiveRecord::Base
belongs_to :user
act_as_bookmarkee
end
to_do_list:
class ToDoList < ActiveRecord::Base
belongs_to :user
end
to_do_lists_controller.rb:
class ToDoListsController < ApplicationController
def index
@articles_bookmark = current_user.bookmarkees_by(Article)
end
迁移:
class ToDoLists < ActiveRecord::Migration
def change
create_table :to_do_lists do |t|
t.belongs_to :user, index: { unique: true }, foreign_key: true
end
end
end
架构:
create_table "to_do_lists", force: :cascade do |t|
t.integer "user_id"
end
add_index "to_do_lists", ["user_id"], name: "index_to_do_lists_on_user_id", unique: true
路线:
resources :to_do_lists
路径:
to_do_lists GET /to_do_lists(.:format) to_do_lists#index
POST /to_do_lists(.:format) to_do_lists#create
new_to_do_list GET /to_do_lists/new(.:format) to_do_lists#new
edit_to_do_list GET /to_do_lists/:id/edit(.:format) to_do_lists#edit
to_do_list GET /to_do_lists/:id(.:format) to_do_lists#show
PATCH /to_do_lists/:id(.:format) to_do_lists#update
PUT /to_do_lists/:id(.:format) to_do_lists#update
DELETE /to_do_lists/:id(.:format) to_do_lists#destroy
我对两件事感到困惑:
1 - 用户将需要 "create" a to_do_list,但我不希望用户创建它,我希望它已经创建并且仅在用户创建时显示项目收藏了一些东西。
2 - 让一个用户访问其他用户也让我产生了一些疑问,一旦我弄清楚了上面的观点,也许这会更清楚。
请给我一些灯,因为我在这里有点迷路。提前致谢。
我最终意识到我已经有了我想要显示的可用数据,实际上不需要创建任何控制器等。
针对这种情况,我在 user_controller 中创建了方法,然后创建了路由来显示我想要的内容。
如果我想让用户在 to_do_list 中创建任务,to_do_list 控制器就有意义了。