Вызов действия контроллера с link_to - PullRequest
5 голосов
/ 09 ноября 2010

После игры со ссылками в Rails в течение нескольких часов мне удалось получить ссылку для вызова метода в моем контроллере. Но я все еще не понимаю, почему все мои другие попытки провалились. Надеюсь, вы поможете мне с этим.

У меня есть эшафот "Автомобили". Когда вы находитесь в представлении для автомобиля, я хотел бы щелкнуть ссылку, которая вызывает метод «ехать» в моем контроллере автомобиля.

Это РАБОТАЕТ: <%= link_to "Drive", drive_car_path(@car) %>

Кажется, это работает, только если у меня есть, это мои маршруты.rb:

resources :cars do
  member do
    get 'drive'
  end
end

Почему <%= link_to "Drive", car_path, :method => :drive %> не работает?

Нужно ли помещать GET в файл routes.rb для каждого метода, который я создаю в своем контроллере?

Не могу найти ни одного сайта, объясняющего, как использовать ссылки вместе с маршрутами. Они только кажутся отдельными. У вас, ребята, есть какие-нибудь понятные учебники по этому вопросу?

1 Ответ

10 голосов
/ 09 ноября 2010

Попробуйте link_to "Drive", :controller => "car", :action => "drive"

Также method предназначен для выбора метода HTTP (GET, POST, ...). Это не method как в обычной жизни.

Обязательно ознакомьтесь с Маршрутизация Rails с внешней стороны и Lowdown на маршрутах в Rails 3 , они оба потрясающие ресурсы.

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