ruby-on-rails - 具有唯一 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 - 用户将需要“创建”一个 to_do_list,但我不希望用户创建它,我希望它已经创建并且仅在用户为某些内容添加书签时才显示项目。
2 - 让一个用户访问其他用户也给我带来了一些问题,一旦我弄清楚了上面的一点,这可能会更清楚。
请给我一些灯,因为我在这里有点迷路。提前致谢。
解决方案
我最终意识到我已经拥有想要显示的数据并且实际上不需要创建任何控制器等。
相反,对于这种情况,我在 user_controller 中创建了方法,然后创建了路由来显示我想要的内容。
如果我希望用户在 to_do_list 中创建任务,那么 to_do_list 控制器会很有意义。
推荐阅读
- c - Linux下用C语言生成Socket,wireshark检测帧错误
- php - 用逗号分隔 PHP 数组的数据
- mongodb - 如何更改MongoDB的压缩方式
- php - 用于匹配有限元素类属性的正则表达式
- python-2.7 - 无法使用 Ibis 通过 AWS Lambda 连接到 Impala
- python-3.x - Ansible 中是否有任何用于 Kinesis Firehose 创建的模块?类似于 Kinesis Data Streams 的 kiensis_stream 模块
- ms-access - 是否可以将照片放在报告上并在打印视图/打印时消失?
- android - SwipeRefreshLayout 中的 Android ViewPager
- keras - Keras 在极其简单的测试代码中拟合 ValueError
- javascript - 删除 Google 表单提交的文件