【问题标题】:How to use session_path with simple_form?如何将 session_path 与 simple_form 一起使用?
【发布时间】:2015-05-29 23:27:42
【问题描述】:

我想将 form_tag 改成 simple_form

<%= form_tag sessions_path do %>
    <%= label_tag :password %>
    <%= password_field_tag :password %>
<% end %>

很好用,可以正常登录了。

        <%= simple_form_for(sessions_path) do |f| %>
            <%= f.error_notification %>
            <%= f.input :password %>
            <%= f.button :submit %>
        <% end %>

我明白了 没有路由匹配 [POST] "/sessions/new"

在我的 routes.rb 我有以下行

get 'login', :controller => 'sessions', :action => 'new'

有人可以帮我解决吗?

【问题讨论】:

  • 您是否使用设备进行身份验证?

标签: ruby-on-rails session simple-form


【解决方案1】:

form_for(因此simple_form_for)假设您有一个模型并且正在发布或修补其资源路径。

但是您没有模型,并且该路由是 GET 路由,因此您需要将一些选项传递给 simple_form 以使其工作。

应该这样做:

simple_form_for(sessions_path), method: :get

但也有这个答案应该有所帮助(不是公认的,第二个):

Does form_tag work with Simple_form?

【讨论】:

  • 当我使用方法时::get 即使我输入正确的密码,我也会被重定向到会话/新。
  • 其实我觉得应该是POST路由。因此,与其修复表单,不如考虑修复路由:post 'login' =&gt; 'sessions#new'
猜你喜欢
  • 2013-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多