ActionView :: TemplateError (неопределенный метод `pop_up 'ошибка в рельсах - PullRequest
0 голосов
/ 15 ноября 2010

Я очень новичок в Rails.

Я пытаюсь получить лайтбокс при наведении имени пользователя.

В моем коде у меня есть строка типа

 <%= hcard_link_to_user h(@blog.user.fullname), @blog.user, :class => "underline" %>  

, которая отображает имя пользователячеловека, который разместил блог.

Для пробной версии я пробовал как,

В представлении show.html.erb

      <%= pop_up @blog %>

А в контроллере -блог, я добавил метод pop_up

 def pop_up
   render :partial => 'shared/pop_up', :layout => false, :locals => {:node => @blog}
 end

Также я отредактировал строки в верхней части контроллера как access_control: DEFAULT => 'view_blogs',: pop_up => 'pop_up', [: comment,: reply] => 'comment'

Но когда я открываю блог как

http://localhost:3000/blogs/new-blog, я получаю ошибку как

  Development mode eh? Here is the error - #<ActionView::TemplateError: ActionView::TemplateError (undefined method `pop_up' for #<ActionView::Base:0xb5a8c61c>) on line #25 of app/views/blogs/show.html.erb:

И яу меня есть частичный файл в общей папке.

Наконец, в маршрутах я отредактировал строки как

  map.resources :questions, :collection => {:pop_up=> :get}

1 Ответ

0 голосов
/ 15 ноября 2010

Методы в контроллере являются действиями, насколько я знаю, вы не можете вызывать их с именем метода. Я нашел два возможных решения:

  1. render: action: # Рендерит шаблон для действия "цель" в текущем контроллере. render: action => "goal", http://rails.rubyonrails.org/classes/ActionController/Base.html#M000464
  2. Вы можете установить либо target = "_ blank", либо всплывающую ссылку JavaScript на это действие и отправить @blog через GET или POST. В помощнике link_to есть параметр: popup (http://apidock.com/rails/ActionView/Helpers/UrlHelper/link_to)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...