【问题标题】:can't get rails current_page? method to work with both GET and POST无法获取 rails current_page?使用 GET 和 POST 的方法
【发布时间】:2015-01-04 16:34:12
【问题描述】:

鉴于我在 routes.rb 中定义了以下路由

get "signup" => "users#new"
post "signup" => "users#create"

以及我的erb视图中的以下条件

<%if current_page?(login_path) or current_page?(signup_path)%>
        <p> NOW YOU'RE IN</p>
<% end %>

如何让 current_page 识别 GET 和 POST 路径?现在只要它在 users#create 中,p 标签就不会显示。我假设这是因为路由将 /signup 定义为用户#new 的获取,而 post 完全是另外一回事。

我尝试了以下方法,但它似乎不起作用

<%if current_page?(login_path) or current_page?(signup_path) or current_page?(controller: "users", action: "create")%>
            <p> NOW YOU'RE IN</p>
    <% end %>

编辑:我之所以有帖子是因为如果注册表单有错误,它会重定向回注册页面,但是这次由于某种原因,该操作不再是新的,而是创建

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 rails-routing current-page


    【解决方案1】:

    current_page? 在 POST 请求中总是返回 false。

    来自文档:

    假设我们在 http://www.example.com/products 操作中使用 POST 方法,以防产品无效。

    current_page?(controller: 'product', action: 'index') 
    # => false
    

    可能的解决方法:

    if controller.controller_name == "users" && controller.action_name == "create"
    

    if request.path == "/signup"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-29
      • 2012-11-25
      • 2020-07-19
      • 2011-10-30
      • 2012-06-27
      • 1970-01-01
      • 2012-12-08
      • 2012-08-10
      相关资源
      最近更新 更多