Подтвердить что ты не робот

Где находится документация по помощникам URL в рельсах?

Как узнать, какие аргументы используют помощники URL в Rails? Например, как я узнаю, что помощник URL-адреса принимает только один параметр ниже? Я знаю, что эти методы метапрограммированы, но где их документация?

link_to "New Ticket", new_project_ticket_path(@project)
4b9b3361

Ответ 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 см. в разделе "Руководство по маршрутизации маршрутизации" в разделе "Список существующих маршрутов" .

Ответ 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.