Метод не требуется для GET? Если да, то обычно ли это не писать? - PullRequest
0 голосов
/ 25 января 2019

Я новичок в Rails, и я думал, что метод должен быть определен для каждого отдельного маршрута.

Однако /hello_world работает, пока я пишу, как показано ниже:

Rails.application.routes.draw do
  get "/hello_world", to: "hello#world"
end
class HelloController < ApplicationController
  # no world
end
# app/views/hello/world.html.erb
hello world!

Это ожидаемое поведение?Если да, то обычно ли не писать?

1 Ответ

0 голосов
/ 25 января 2019

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

Так что, да, сам метод не обязательно нужен.

Возможно, вам понадобится извлечь запись в show действии, подобном этому ...

class CustomersController < ApplicationController
  def show
    @customer = Customer.find(params[:id])
  end
end

но в некоторых случаях у вас может быть before_action, который делает все необходимое для нескольких методов, поэтому вам (опять же) не нужно указывать метод действия.

class CustomersController < ApplicationController
  before_action :set_customer only: [:show, :edit, :update]
  private
  def set_customer
    @customer = Customer.find(params[:id])
  end
end

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

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