проблема маршрутизации - PullRequest
       1

проблема маршрутизации

0 голосов
/ 19 февраля 2011

у меня два одинаковых контроллера, маршрутизируемых одинаково:

resources :profile
resources :friends

вот контроллеры

class ProfileController < ApplicationController



def index
@text = "profile"
end
def show
end
def new 
end
def create
end
def edit
end
def update
end
def destroy
end

end





class FriendsController < ApplicationController


def index
@text = "friends"
end
def show

end
def new 
end
def create
end
def edit
end
def update
end
def destroy
end

end

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

<ul id="menu">

<li>
<%= link_to "Friends",friends_path %>
</li>
<li>
<%= link_to "Profile", profile_path %>
</li>


</ul>

и ошибка:

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

Почему это происходит, если контроллеры и представления идентичны?

Ответы [ 2 ]

1 голос
/ 19 февраля 2011

Это связано с тем, что вы дали своему контроллеру профиля уникальное имя и маршрут.Вы можете запустить rake routes, чтобы узнать, как называются помощники маршрута.Ищите GET /profile, это может быть что-то вроде index_profile_path или profile_index_path

Правка: более конкретно, ошибка в том, что по умолчанию ожидается, что profile_path будет помощником для показа определенного экземпляра.Например, profile_path(@profile)

0 голосов
/ 19 февраля 2011

попробуйте использовать

<%= link_to "Profile", profiles_path %>

Разница заключается в профиле имени переменной s _path.Поскольку путь к URL-адресу индекса должен быть во множественном числе.

Вы также можете просмотреть все маршруты, если ваше приложение запустило rake routes - это живая заставка для устранения проблем маршрутов.

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