Rails не переходит к методу контроллера - PullRequest
0 голосов
/ 08 марта 2019

Я пытаюсь добавить новый метод контроллера. Я также создал соответствующий вид для того же. Все, что я пытаюсь сделать, это создать переменную с именем @x и распечатать ее в виде. Я делаю это только для того, чтобы проверить, входит ли мое приложение в метод. Однако я не вижу значения, выводимого на печать. Пожалуйста помоги.

Это мой контроллер с именем submit_content_controller.rb

class SubmittedContentController < ApplicationController

 def begin_planning
  @x = 1
 end
end

Это мой взгляд, который называется begin_planning.html.erb

<%= form_tag url_for(:action => :revision_planning), method: "post" %>
<%= text_field 'questionnaire', 'name', class: "form-control width-250" %>
<p><%= @x %></p>
<button>Create</button>

Это маршруты, которые я добавил:

get :begin_planning

Когда я нахожусь на html-странице begin_planning, я вижу текстовое поле и кнопку создания, но не вижу, как печатается значение @x. Это будет огромная помощь. Спасибо.

Это вывод моих маршрутов:

begin_planning_submitted_content_index GET  /submitted_content/begin_planning(.:format)                   submitted_content_controller#begin_planning

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

1 Ответ

0 голосов
/ 11 марта 2019

Вы можете визуализировать вид, не проходя действие.

Если Rails находит файл представления с именем, совпадающим с маршрутом, но не находит соответствующего действия для этого маршрута, он все равно будет отображать представление.

https://guides.rubyonrails.org/layouts_and_rendering.html#rendering-by-default-convention-over-configuration-in-action

Итак, вы успешно отрисовали форму в представлении, но Rails не знает, что означает @x.

В своем файле маршрутов попробуйте добавить следующее вне любых пространств имен: get '/begin_planning', to: 'submitted_content#begin_planning'

Ваш rake routes должен включать следующее: begin_planning GET /begin_planning(.:format) submitted_content#begin_planning

И перейдите кhttp://localhost:3000/begin_planning

Или,

, если вы хотите использовать пространство имен, вы можете вместо этого добавить в файл маршрутов следующее:

namespace :submitted_content do
    get :begin_planning
end

И ваши рейк-маршруты'должно включать следующее:

submitted_content_begin_planning GET
/submitted_content/begin_planning(.:format)
submitted_content#begin_planning

и перейдите к http://localhost:3000/submitted_content/begin_planning

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