Странное поведение маршрута для просмотра шоу

Я делаю приложение со всеми названиями моделей на испанском языке. У меня возникли некоторые странные проблемы, связанные с сингуляризацией. Моя модель:

class Artista < ActiveRecord::Base
  attr_accessible :fecha, :foto, :instrumento, :nombre
end

Мое имя модели "artista" (художник) в единственном числе.

Контроллер:

class ArtistasController < ApplicationController
  # GET /bandas
  # GET /bandas.json
  def index
    @artistas = Artista.all

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @artistas }
    end 
  end 

  def show
    @artista = Artista.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @artista }
    end 
  end 
  def new
    @artista = Artista.new

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @artista }
    end
  end

  def edit
    @artista = Artista.find(params[:id])
  end

  def create
    @artista = Artista.new(params[:artista])

    respond_to do |format|
      if @artista.save
format.html { redirect_to @artista, notice: 'Artista was successfully created.' }
        format.json { render json: @artista, status: :created, location: @artista }
      else
        format.html { render action: "new" }
        format.json { render json: @artista.errors, status: :unprocessable_entity }
      end
    end
  end

  def update
    @artista = Artista.find(params[:id])
    respond_to do |format|
      if @artista.update_attributes(params[:banda])
        format.html { redirect_to @artista, notice: 'Artista was successfully updated.' }
        format.json { head :no_content }
 else
        format.html { render action: "edit" }
        format.json { render json: @artista.errors, status: :unprocessable_entity }
      end
    end
 end
  def destroy
    @artista = Artista.find(params[:id])
    @artista.destroy
    respond_to do |format|
      format.html { redirect_to artistas_url }
      format.json { head :no_content }
    end
   end
   end

(Все это было автоматически создано с помощью команд генерации рельсов)

Теперь мои маршруты включают следующее:

resources :artistas

Когда я получаю доступ к localhost:3000/artistas, все работает отлично. Я вижу список уже созданных арицтов. Теперь, когда я нажимаю на существующего исполнителя (или после того, как я пытаюсь создать нового, меня перенаправляют на страницу шоу исполнителя) по какой-то странной причине он переходит на http://localhost:3000/artistum.3 (3 - это идентификатор исполнителя, на которого я нажал). Вывод для этого URL-адреса — совершенно пустая страница.

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

Я провел поиск в папке, содержащей все, и слово artistum существует только в файлах журнала.

Я предполагаю, что часть моего приложения каким-то образом думает, что "artista" во множественном числе, а "artistum" - в единственном числе.

Я добавил к своим маршрутам match '/artistum' => 'artistas#index'and, это работает для страницы индекса, но точка сбила меня с толку, как это сделать для страниц шоу.

Может ли кто-нибудь помочь мне: а) выяснить, почему он пытается туда попасть, или б) как перейти с этих выставочных страниц? Спасибо!


person Zumwan    schedule 25.11.2013    source источник
comment
Как выглядит link_to для каждого отдельного Artista?   -  person Benjamin Tan Wei Hao    schedule 25.11.2013


Ответы (1)


Вы можете попробовать это:

Добавьте это в inflections.rb в папке config/initializers:

ActiveSupport::Inflector.inflections do |inflect|
  inflect.plural 'artista', 'artistas'
  inflect.irregular 'artista', 'artistas'
end
person Benjamin Tan Wei Hao    schedule 25.11.2013