Где находится документация по помощникам URL в рельсах?
Как узнать, какие аргументы используют помощники URL в Rails? Например, как я узнаю, что помощник URL-адреса принимает только один параметр ниже? Я знаю, что эти методы метапрограммированы, но где их документация?
link_to "New Ticket", new_project_ticket_path(@project)
Ответы
Ответ 1
Вы можете определить, сколько параметров требуется помощнику маршрута, посмотрев определение маршрута.
Например, у вас может быть этот файл маршрутов:
resources :users
Если вы запустили rake routes
в командной строке, вы увидите что-то вроде этого:
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
В первом столбце указывается название маршрута. Вы можете добавить _path
или _url
, чтобы получить имя помощника маршрута.
В третьем столбце показан шаблон. Здесь вы можете выяснить, что такое аргументы. Аргументами являются части с префиксом двоеточия, а необязательные аргументы показаны в круглых скобках. Например, маршрут edit_user
имеет шаблон /users/:id/edit(.:format)
, который содержит один требуемый аргумент (id
) и один необязательный аргумент (format
), который говорит мне, что мне нужно передать хотя бы один аргумент в edit_user_path
или edit_user_url
помощник:
edit_user_path(1) # => "/users/1/edit"
edit_user_path(2, :html) # => "/users/2/edit.html"
Вы также можете использовать имена аргументов из шаблона как ключи в хеше:
edit_user_path(id: 3, format: 'js') # => "/users/3/edit.js"
Наконец, вы можете добавить дополнительные аргументы, которые станут частью строки запроса:
edit_user_path(id: 4, format: 'json', foo: 1) # => "/users/4/edit.json?foo=1"
edit_user_path(5, bar: 2) # => "/users/5/edit?bar=2"
Дополнительную информацию о rake routes
см. в разделе "Руководство по маршрутизации маршрутизации" в разделе "Список существующих маршрутов" .
Ответ 2
Я обычно ссылаюсь на Руководство по маршрутизации Rails
Ответ 3
Вот API doc. Он содержит link_to, button_to, link_to_unless, link_to_unless_current, current_page? И mail_to.
link_to(name = nil, options = nil, html_options = nil, &block)
link_to(body, url, html_options = {})
# url is a String; you can use URL helpers like posts_path
Функции
: data - этот параметр можно использовать для добавления пользовательских атрибутов данных.
method: symbol of HTTP verb - Этот модификатор будет динамически создавать HTML-форму и немедленно отправить форму для обработки с использованием указанного HTTP-глагола. Полезно для того, чтобы ссылки выполняли операцию POST в опасных действиях, таких как удаление записи (какие поисковые роботы могут отслеживать во время разворачивания вашего сайта). Поддерживаемые глаголы: post,: delete,: patch и: put. Обратите внимание: если пользователь отключен JavaScript, запрос будет возвращаться к использованию GET. Если используется href: '#', и пользователь отключил JavaScript, щелчок по ссылке не будет иметь никакого эффекта. Если вы полагаетесь на поведение POST, вы должны проверить его в действии вашего контроллера, используя методы объекта запроса для post?, delete?,: patch или put?.
remote: true - это позволит ненавязчивому JavaScript-драйверу сделать запрос Ajax к рассматриваемому URL, а не следовать по ссылке. Каждый драйвер предоставляет механизмы для прослушивания завершения запроса Ajax и выполнения операций JavaScript после их завершения.
Атрибуты данных
подтвердить: "вопрос?" - Это позволит ненавязчивому JavaScript-драйверу запросить заданный вопрос. Если пользователь принимает, ссылка обрабатывается нормально, в противном случае никаких действий не предпринимается.
: disable_with - Значение этого параметра будет использоваться как значение для отключенной версии кнопки отправки при отправке формы. Эта функция обеспечивается ненавязчивым драйвером JavaScript.