【问题标题】:Ruby on Rails undefined local variable or methodRuby on Rails 未定义的局部变量或方法
【发布时间】:2014-07-31 17:32:28
【问题描述】:

我在将我的网站重定向到其他页面时遇到问题,如果此人比某个年龄还小。要么,我需要更多的咖啡,要么我把它弄丢了,我似乎看不出我做错了什么。非常感谢。

app/models/student.rb

我试图通过重定向将人们发送到不同的站点

 private
  def must_be_over_13
    if birthday && birthday > 13.years.ago
      redirect_to under_13_landing_page_path ``
    end
  end

我在_13_landing_page下定义

控制器/学生控制器

 def under_13_landing_page
  end

观看次数/学生

我做了重定向页面

under_13_landing_page.html

config/routes.rb

我告诉它重定向到着陆页

get "games_for_kids", to: "students#under_13_landing_page", as: 'under_13_landing_page'

错误**未定义的局部变量或方法 `under_13_landing_page_path' for #**

【问题讨论】:

    标签: variables ruby-on-rails-4 undefined local redirecttoroute


    【解决方案1】:

    renderingredirectionController 的 责任而不是 Model 的。您不应该在 Model app/models/student.rb 中重定向。这是代码失败的原因,因为在您的情况下,Model 无法访问诸如 under_13_landing_page_path 之类的路由辅助方法。

    我建议您从Student#must_be_over_13 方法返回一个boolean 值,然后您可以适当地检查相关控制器和redirect

    【讨论】:

    • 感谢您快速而详细的回复。这完全有道理!
    猜你喜欢
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多