【问题标题】:What is the route of a re- rendered page?重新渲染页面的路径是什么?
【发布时间】:2017-03-15 02:51:23
【问题描述】:

我有一个控制器操作:当信息输入错误时,会导致重新呈现表单。

def create
    @user = User.new(user_params)
    if @user.save
        log_in @user
        flash[:success] = "You have successfully created your account"
        redirect_to app_path
    else
        render 'new'
    end
end

我还有一个侧边栏,它不会使用条件语句显示在登录页面上...

<% if current_page?(login_path) 

<% else %>
<%= render 'layouts/sidebar' %>
<% end %>

那工作正常...问题是如果用户输入数据不正确,登录表单会重新呈现并显示错误消息,然后会出现侧边栏,而它不应该出现。

任何想法将不胜感激。


【问题讨论】:

    标签: ruby-on-rails forms routes


    【解决方案1】:

    发生这种情况的原因是,当引发错误时,它会在您的控制器中呈现create 操作,这与名为login_path 的命名路由不同。

    相反,在您的视图中使用类似于以下 sn-p 的内容:

    <% unless params[:controller] == 'sessions' %>
      <%= render 'layouts/sidebar' %>
    <% end %>
    

    (显然将“会话”更改为您的控制器的名称)。

    【讨论】:

    • 这太奇怪了...我刚刚通过安装调试转储解决了问题...我在那里看到了创建操作。虽然不知道怎么解决所以非常感谢!我终于可以继续前进了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-25
    • 2014-02-13
    • 2012-10-10
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多