Ошибка маршрутизации в Ruby on Rails "action: show" - PullRequest
1 голос
/ 12 марта 2012

Я новичок в RoR и пытаюсь создать мастер-данные: пользователь -Lugar (место)

Мои маршруты.rb

  resources :users do
    resources :lugars
  end

мой контроллер лугар

class LugarsController < ApplicationController 
  def create
    @user = User.find(params[:user_id])
    @lugar = @user.lugars.create(params[:lugar])
    redirect_to account_url
  end

  def destroy
    @user = User.find(params[:user_id])
    @lugar = @user.lugars.find(params[:id])
    @lugar.destroy
    redirect_to account_url
  end

  def edit
    @user = User.find(params[:user_id])
    @lugar = @user.lugars.find(params[:id])
  end

  def show
    @user = User.find(params[:user_id])
    @lugar = @user.lugars.find(params[:id])
  end

  def index
    @user = User.find(params[:user_id])
    @lugar = @user.lugars.all
  end
end

И мой взгляд

....
    <% @user.lugars.each do |lugar| %>
      <tr>
        <td><%= lugar.nombre %></td>
        <td><%= lugar.telefono %></td>
        <td><%= lugar.direccion %></td>
        <td><%= lugar.numero %></td>
        <td><%= lugar.localidad %></td>
        <td><%= lugar.provincia %></td>
        <td><%= link_to "Editar",  user_lugar_path %></td>
        <td><%= link_to "Eliminar", [lugar.user , lugar], :method => :delete %></td>
      </tr>
    <% end %>
....

Я создал и опустошил файл в моем представлении lugars «show.html.erb», но при входе на страницу всегда получаю:

Routing Error

No route matches {:action=>"show", :controller=>"lugars"}

Есть идеи? Заранее спасибо

1 Ответ

4 голосов
/ 12 марта 2012

Вы звоните user_lugar_path без ID / объекта, поэтому он не знает, к какому отдельному ресурсу направить. Поскольку ресурс является вложенным, вы должны передать ему lugar и user, вложенному в:

link_to "Editar", user_lugar_path(@user, lugar)

Вы также можете просто передать link_to объекты:

link_to "Editar", [@user, lugar]

Подробнее об этом можно прочитать в Руководства Rails по маршрутизации .

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