Почему мое действие «присоединиться» не работает, оно говорит, что действие «шоу» не может быть найдено - PullRequest
0 голосов
/ 25 октября 2010

В моем UserController у меня есть:

def join
end

У меня есть файл join.html.erb в моей папке / views / user /.

Мои маршруты имеют:

resources :user

Когда я перехожу к:

http://localhost:3000/user/join

Я получаю:

Не удалось найти действие 'show' для UserController

Ответы [ 3 ]

5 голосов
/ 25 октября 2010

Re: почему не найдено действие объединения?

Чтобы ответить на ваш конкретный вопрос, вам нужно выполнить действие "соединение" для вашей модели пользователя.

Ваша проблема в том, что вы не определили маршрут, соответствующий URL http://localhost:3000/user/join

Строка resources :user в вашем файле маршрутов определяет только маршруты для семи стандартных глаголов / действий остальных:

индекс, новый, создать, показать, редактировать, обновить, уничтожить

См .: http://apidock.com/rails/ActionController/Resources/resources

Добавлено: чтобы исправить, вам нужно добавить явный илиобщий маршрут. Routing docs

Добавлено: Re: почему я снова вижу сообщение об ошибке? Чтобы быть сверхточным, селектор маршрута "GET / usr /: id"(созданный вашим вызовом ресурса) используется для выбора действия SHOW для ресурса User.Значение: id устанавливается как «join».Поскольку в вашем контроллере не определен метод Show, это ошибка, которую вы видите.

2 голосов
/ 25 октября 2010

Вы используете ресурсы, но у вас есть действие не-REST, поэтому вам нужно добавить действие объединения к маршруту с соответствующим HTTP-глаголом:

map.resources :users, :member => { :join => :get }
0 голосов
/ 25 октября 2010

Место:

def show
end

в вашем UserController.

Для уверенности:

app / controllers / users_controller.rb

def join
end

app / views / users / join.html.erb

config / rout.rb

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