Пользователь с уникальным списком To_do_list - PullRequest
0 голосов
/ 30 апреля 2018

Я делаю приложение с 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 - Предоставление пользователю доступа к другому пользователю также вызывает у меня некоторые вопросы, возможно, это может быть яснее, когда я выясню пункт выше.

Пожалуйста, дайте мне немного света, потому что я немного растерялся здесь. Заранее спасибо.

1 Ответ

0 голосов
/ 01 мая 2018

Я закончил, осознав, что у меня уже есть данные, которые я хочу показать доступными, и на самом деле мне не нужно создавать какой-либо контроллер и т. Д.

Вместо этого для этой ситуации я создал методы в user_controller, а затем создал маршруты, чтобы показать, что я хотел.

Контроллер to_do_list имел бы смысл, если бы я хотел, чтобы пользователи создавали задачи в списке to_do_list.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...