2016-04-07 3 views
0

Я новичок в Ruby on Rails. Я создаю приложение, которое выполняет пользовательские операции над определенными узлами (объектом). Вот мой стол:Ruby on Rails Пользовательский метод/Задача

<% @nodes.each do |node| %> 
    <tr> 
     <td><%= node.name %></td> 
     <td><%= link_to 'Bootstrap', node_path(node), 
       method: :bootstrap %> 
     </td> 
    </tr> 
    <% end %> 

«Bootstrap» - это настраиваемый код, который я хочу запустить. Я определил пользовательский метод в моем контроллере:

class NodesController < ApplicationController 
    def bootstrap 
    ...... 
    end 
    ........ 
end 

Как связать мой пользовательский код для моего приложения Rails, так что, когда пользователь нажимает на ссылку код будет работать против этого объекта?

ответ

1

В config/routes.rb, вы, вероятно, есть:

resources :nodes 

Изменить это:

resources :nodes do 
    get 'bootstrap', on: :member 
end 

Затем запустите rake routes, чтобы увидеть, что теперь у вас есть новый метод маршрута, bootstrap_node_path(node) и соединит до /nodes/:id/bootstrap.

Я рекомендую это по другому подходу, поскольку он сохраняет детали вашего маршрута вместе, но это только мое личное мнение. Обычно я прибегаю к специальным маршрутам в качестве крайней меры.

+0

В итоге я добавил его как ресурс участника – user3063045