Способ по умолчанию для передачи URL-адреса link_to в Rails - PullRequest
0 голосов
/ 12 января 2010

Это очень простой вопрос, возможно, с легким ответом. Допустим, у меня есть модель под названием Product. Когда я добавляю

map.resources :products

к моему route.rb У меня есть доступ к некоторым путям по умолчанию new_product_path, edit_product_path и так далее. Как я понимаю, это следует использовать при ссылке на ресурс, например используя вспомогательный метод link_to:

link_to "Edit Product", edit_product_path(@product)

Мой вопрос: что мне делать, когда у меня есть другие методы контроллера, такие как, например,

def do_something
  ...
end

Какой «лучший» способ связать с этим методом контроллера?

link_to "Do Something", {:controller => 'products', :action => 'do_something', :id => @product.id}

наверняка будет работать. Но это то, что я должен использовать?

Надеюсь, я ясно изложил свою точку зрения! Пожалуйста, прокомментируйте, если нет. Я постараюсь объяснить это лучше.

1 Ответ

1 голос
/ 12 января 2010

Возможно, вы захотите прочитать о Rails Routing, в частности, добавив новый маршрут Restful .

Если вы используете этот метод, я считаю, что он довольно прост:

# routes.rb
map.resources :products, :member => { :do_something => :get }

# your view.rb file
link_to "Do Something", do_something_product_path(object_id)

Также обязательно прочитайте раздел о «маршрутах сбора», если хотите, чтобы URL работал на всех продуктах (например, на более сложной индексной странице).

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