Я делаю приложение с 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
Меня смущают 2 вещи:
1 - пользователь должен будет «создать» список to_do_list, но я не хочу, чтобы пользователь его создал, я хочу, чтобы он уже был создан и отображал элементы, только если пользователь что-то добавил в закладки.
2 - Предоставление пользователю доступа к другому пользователю также вызывает у меня некоторые вопросы, возможно, это может быть яснее, когда я выясню пункт выше.
Пожалуйста, дайте мне немного света, потому что я немного растерялся здесь. Заранее спасибо.