我正在使用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 - 用户需要“创建”to_do_list,但我不希望用户创建它,我希望它已经创建,并且只有在用户为某些内容添加书签时才显示项目。
2 - 让用户访问其他用户也引起了一些问题,一旦我弄清楚上述观点,这可能会更清楚。
请给我一些灯光,因为我有点迷失在这里。提前谢谢。
答案 0 :(得分:0)
我意识到我已经拥有了我想要显示的数据,并且实际上并不需要创建任何控制器等。
相反,在这种情况下,我在user_controller中创建了方法,然后创建了显示我想要的路径。
如果我希望用户在to_do_list中创建任务,那么to_do_list控制器会有意义。