Выполнение действия контроллера из представления - PullRequest
0 голосов
/ 20 сентября 2009

Я новичок в Ruby on Rails (RoR). Я создал новый метод на моем контроллере. Я хочу вызвать новый метод из представления.

На мой взгляд, у меня есть этот код:

<%= link_to "MyMethod", :method=>:MyMethod %>

Когда я нажимаю на ссылку, URL меняется на http://localhost:3000/seats?method=MyMethod, и страница перезагружается в браузере, и из журнала я вижу, что MyMethod никогда не выполняется.

Что я могу сделать, чтобы вызвать метод из представления?

Ответы [ 3 ]

0 голосов
/ 20 сентября 2009

Кажется, проблема в ваших маршрутах (или вам действительно нужен помощник вида, как предлагает ndp).

Если маршрут лучше подходит, просмотрите превосходное руководство по прокладке рельсов . Я могу представить одно из двух решений:

  • map.resources :the_resource, :member => { :my_method => :get }: используйте это, если метод действует на один экземпляр the_resource. URL будет выглядеть следующим образом: /the_resource/:id/my_method.
  • map.resources :the_resource, :collection => { :my_method => :get }: Используйте это, если: my_method действует на многие экземпляры the_resource - коллекции. URL будет иметь вид: /the_resource/my_method.

Затем запустите rake routes | grep my_method. То, что вы найдете, - это помощники маршрутизации, сгенерированные rails для доступа к этому методу. Вы бы назвали их либо через my_method_the_resource (@an_instance) - для случая члена, либо my_method_the_resources для случая сбора.

Дополнительная информация приведена в разделе 3.11 связанного руководства.

0 голосов
/ 20 сентября 2009

при условии, что mymethod находится в контроллере с именем users и указывает на действие mymethod в вашем rout.rb добавить это:

map.my_method '/ mymethod',: controller => 'users',: action => 'mymethod'

тогда, на ваш взгляд, вы можете назвать это так:

0 голосов
/ 20 сентября 2009

Ops ... метод, не для вызова метода, а для описания метода HTTP. Хорошо, поэтому я не должен использовать метод. Если я использую: action => "MyMethod"

URL становится сиденье / MyMethod

, который выдает ошибку, не может найти место с id = mymethod как мне заставить это работать?

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