【问题标题】:ActionView::TemplateError (undefined method `pop_up' error In railsActionView::TemplateError(未定义的方法 `pop_up' 错误在 rails
【发布时间】:2011-05-10 02:00:02
【问题描述】:

我对 Rails 很陌生。

我正在尝试在悬停用户名时获得一个灯箱..

在我的代码中,我有这样一行

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

显示发布博客的人的用户名。

对于我尝试过的试验,

在视图中显示.html.erb

      <%= pop_up @blog %>

并且在 Controller - 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}

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    控制器中的方法是动作,据我所知你不能用方法名来调用它们。我找到了两种可能的解决方案:

    1. render :action: # 在当前控制器中渲染动作“目标”的模板 渲染:动作=>“目标”,http://rails.rubyonrails.org/classes/ActionController/Base.html#M000464
    2. 您可以为该操作设置 target="_blank" 或 JavaScript 弹出链接,并通过 GET 或 POST 提交 @blog。 link_to 助手中有一个 :popup 参数 (http://apidock.com/rails/ActionView/Helpers/UrlHelper/link_to)

    【讨论】:

      猜你喜欢
      • 2012-03-08
      • 2011-04-26
      • 2011-05-15
      • 2010-12-15
      • 1970-01-01
      • 2011-07-03
      • 1970-01-01
      • 1970-01-01
      • 2018-03-02
      相关资源
      最近更新 更多