Rails 5 игнорирует шаблоны представлений - PullRequest
0 голосов
/ 23 сентября 2019

В моем проекте Rails я запустил:

rails generate scaffold car

, который успешно создал все необходимые файлы и каталоги для приложения.Это включает в себя стандартный файл макета application.html.erb, а также каталог app / views / cars, который включает в себя больше стандартных файлов html.erb (index, show, ETC.)

Кроме того, мой маршрут автомобилей находится вместо в config/routes.rb.

Моя следующая команда - это сервер rails, что также успешно.Когда я открываю свой браузер и захожу на localhost:3000, страница приветствия ruby ​​on rails появляется как обычно.Я ожидаю, что когда я перейду на localhost:3000/cars, я увижу html, отображаемый с app/views/cars/index.html.erb.Если нет, я, по крайней мере, ожидаю, что по умолчанию он будет application.html.erb.

Вместо этого я неоднократно получаю следующее:

>ActionController::UnknownFormat in CarsController#index
>CarsController#index is missing a template for this request format and variant. request.formats: ["text/html"] request.variant: [] 

Мой класс контроллера выглядит следующим образом:

class CarsController < ApplicationController
  before_action :set_car, only: [:show, :edit, :update, :destroy]

  #  GET /cars
  #  GET /cars.json

  def index
    @cars = Car.all
  end

  #  GET /cars/1
  #  GET /cars/1.json

  def show
  end

  # GET /cars/new

  def new
    @car = Car.new
  end

  # GET /cars/1/edit

  def edit
  end

  # POST /cars
  # POST /cars.json

  def create
    @car = Car.new(car_params)

    respond_to do |format|
      if @car.save
        format.html { redirect_to @car, notice: 'Car was successfully created.' }
        format.json { render :show, status: :created, location: @car }

      else
        format.html { render :new }
        format.json { render json: @car.errors, status: :unprocessable_entity }
      end
    end
  end

  # PATCH/PUT /cars/1
  # PATCH/PUT /cars/1.json

  def update
    respond_to do |format|
      if @car.update(car_params)
        format.html { redirect_to @car, notice: 'Car was successfully updated.' }
        format.json { render :show, status: :ok, location: @car }

      else
        format.html { render :edit }
        format.json { render json: @car.errors, status: :unprocessable_entity }
      end
    end
  end

  # DELETE /cars/1
  # DELETE /cars/1.json

  def destroy
    @car.destroy
    respond_to do |format|
      format.html { redirect_to cars_url, notice: 'Car was successfully destroyed.' }
      format.json { head :no_content }
    end
  end

  private
    # Use callbacks to share common setup or constraints between actions.

  def set_car
    @car = Car.find(params[:id])
  end

  # Never trust parameters from the scary internet, only allow the white list through.

  def car_params
    params.fetch(:car, {})
  end
end

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

Заранее спасибо!

1 Ответ

0 голосов
/ 26 сентября 2019

Спасибо всем, кто пытался ответить на мой вопрос!Это было глупо, но я обнаружил проблему:

После удаления и переустановки рельсов несколько раз я создал проект фиктивных рельсов и создал новый "каркас" лесов.После запуска сервера rails и загрузки localhost: 3000 / cars компоновка по умолчанию отображалась как обычно.Думая, что переустановка rails решила эту проблему, я затем связал фиктивный проект с удаленным репозиторием github.

В этот момент при запуске rails server и загрузке localhost: 3000 / cars показывалось то же сообщение об ошибке, что и раньше.Это заставило меня поверить, что что-то в удаленном репо испортило мой проект, поэтому я погуглил это сообщение об ошибке и github.

Я наткнулся на следующую ссылку, которая в конечном итоге ответила на мой вопрос:

https://github.com/rails/rails/issues/18660

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

Я разочарован тем, что ruby ​​использует чрезвычайно самоуверенные соглашения rails, и тем более, что этот проект опаздывает почти на неделю из-за такогоэзотерическая ошибкаНо я на седьмом небе от счастья, чтобы все прошло гладко, и я надеюсь, что это может помочь кому-то еще в будущемЕще раз спасибо всем!

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