2015-02-01 2 views
0

Я следовал за это руководство, чтобы сделать Ruby On Rails веб-приложение:Создание Вопросы в Ruby On Rails

http://guides.rubyonrails.org/getting_started.html

Она должна быть викторина, где люди отвечают на вопросы.

Я создал: вопросы ресурса. Однако руководство упоминает страницу на своем веб-сайте, чтобы иметь возможность создавать и удалять свои статьи ресурсов. Очевидно, это не имеет смысла с вопросами викторины, поскольку я просто хочу их создать один раз, и после этого больше не может быть создано или удалено. Однако об этом не упоминается в руководстве?

+0

Я не могу полностью понять ваш вопрос, но я постараюсь ответить на него наилучшим образом. Если вы создаете ресурс «Вопросы», я уверен, что вы можете добавить больше вопросов или даже удалить один или несколько вопросов, если это неверно или по какой-то причине вам необходимо изменить его в будущем. Чтобы создать ресурс RESTful, необходимо создать и удалить действия, но если вы действительно не хотите включать удаление в свой ресурс, вы также можете сделать это. – erickeno

ответ

0

Если вы не хотите, чтобы иметь возможность создавать/обновлять/уничтожать ваши вопросы через контроллер, вы можете исключить эти успокоительные маршруты с :except или указать маршруты, нужно с :only, которая является более очевидным (take a look at the routing guide):

resources :questions, only: [:index, :show] 

Это создаст следующие маршруты:

GET /questions  questions#index 
GET /questions/:id questions#show 

Для заполнения базы данных с вопросами, используйте семена (which are described in AR migrations guide). Поместите свой код для создания вопросов в файл db/seeds.rb и запустите rake db:seed.

0

Вы должны указать в своих маршрутах только :show вопросы.

ли что-то подобное в маршрутах:

resources :questions, only: [:show]

0

Так как много я понимаю, вы хотите создать ресурсы и данные по своему усмотрению, но не хотите, чтобы другие пользователи могли создавать или удалить ресурс, не так ли? начало

ДАВАЙТЕ с основами:

В MVC, модель/ресурс является основным представлением объектов. Файл маршрутов указывает, какие маршруты доступны на первом месте для каждого объекта, которому могут быть отправлены HTML-запросы. Он также соответствует маршруту с соответствующим действием контроллера. Контроллер предоставляет шлюз для взаимодействия пользователей с вашим приложением, принимает запрос от них, предпринимает необходимые действия (выдает команды SQL для создания, отображения, удаления из базы данных и т. Д.) И дает подходящий ответ в конце.

Итак, предположим, что вы хотите, чтобы пользователи создавали новый ресурс на вашем сервере. Во-первых, вы предоставляете маршрут, по которому они могут отправить запрос. Затем вы даете им кнопку создания нового ресурса в своем представлении, через которую они могут взаимодействовать. Эта кнопка будет использовать маршрут, сопоставить его с действием контроллера и отправить запрос этому методу контроллера. В зависимости от того, что находится внутри действия контроллера, контроллер затем создает ресурс и перенаправляет пользователя с помощью 302 с уведомлением.

Теперь предположим, что вы не хотите, чтобы запрос проходил. Что вы будете делать? Сначала вы не создадите маршрут, по которому может быть отправлен запрос. Вы также не создадите действие контроллера, по которому может быть получен запрос.

Это вариант использования в вашем сценарии.

Поскольку вы не хотите, чтобы пользователи могли послать запрос на сервер, чтобы создать ресурс:

  1. не обеспечивают маршруты для них, чтобы отправить такое HTML любой запрос
  2. Дон 't предоставить какой-либо контроллер, который получит такой запрос
  3. И, очевидно, не предоставляйте ни одной кнопки в представлении, чтобы принять это действие.

Теперь вопрос будет следующим: тогда как я создам ресурс?

У вас есть три варианта:

  1. Использование файла семена: Вы можете использовать файл семян, где вы добавляете все данные, которые вы хотите. Этот учебник и многие другие ресурсы в Интернете могут помочь вам. http://www.xyzpub.com/en/ruby-on-rails/3.2/seed_rb.html

  2. Использование консоли rails: Дайте команды create: Question.create (: name => «hello»,: description => «Как вы это делаете!»). Перейдите по ссылке: https://apidock.com/rails/ActiveRecord/Base/create/class

  3. Если вы новичок, вам нужно немного поработать перед тем, как попробовать: создать авторизованных пользователей и какие действия они предпримут. Вы также можете создать панель управления администратора и предоставить все действия пользователям-администраторам с помощью ярлыка activeadmin. Этот блог объясняет процесс: http://www.onceaday.today/subjects/1/posts/93

Наконец, как вам нужно, чтобы показать все вопросы: создать только показать маршрут, сравнить его с действием контроллера, написать метод в действии контроллера, который выдает SQL, чтобы получить весь ресурс из базы данных и предоставить соответствующее представление для просмотра данных, которые он может отобразить.

Надеюсь, это поможет вам!

Смежные вопросы