Twitter bootstrap 巫术和简单表单实现

Twitter bootstrap 巫术和简单表单实现,twitter-bootstrap,omniauth,cancan,simple-form,sorcery,Twitter Bootstrap,Omniauth,Cancan,Simple Form,Sorcery,长时间阅读第一次用户。 我正在组装我的第一个RoR应用程序,我已经隔离了我的应用程序应该使用的所有内容,包括:- 巫术 Omniauth 坎坎 twitter引导(转换为sass) 和简单的形式 干净、清晰、简单……不是 在我的一生中,无法将简单表单与魔法“登录”集成(这似乎是最简单的任务),而不会在“记住我”字段中出错 Simple forms没有Simple_form_标记(仅Simple_form_for)选项,该选项在sessions controller新方法的登录表单上最有效。相

长时间阅读第一次用户。 我正在组装我的第一个RoR应用程序,我已经隔离了我的应用程序应该使用的所有内容,包括:-

  • 巫术
  • Omniauth
  • 坎坎
  • twitter引导(转换为sass)
和简单的形式

干净、清晰、简单……不是

在我的一生中,无法将简单表单与魔法“登录”集成(这似乎是最简单的任务),而不会在“记住我”字段中出错

Simple forms没有Simple_form_标记(仅Simple_form_for)选项,该选项在sessions controller新方法的登录表单上最有效。相反,我必须在该方法中创建一个@user实例,但在“记住我”字段“未定义的方法‘记住我’”中会出现错误

任何帮助都将不胜感激

我的意思是非常好!提前支付巨款:)

sessions/new.html.erb
登录
{:class=>form horizontal}do | f |%>
登录
100 } %>
20 } %>
“btn btn主节点”%>
'btn'>
类sessioncontroller
上面写着:

这表示
form_tag
旨在将数据直接发送到另一个URL,由控制器操作处理。事实上,在RailsTutorial中,Michael Hartl使用
form_作为
函数,而不是
form_标签

form_for(:session, url: sessions_path)
基本上,这个想法是您发送数据以某种方式由控制器处理,而不是写入数据库。由于我们没有用户会话的模型,我们必须使用
:session
符号而不是
@session
,并告诉表单数据应该发布到哪里(哪个URL)

我怀疑,尽管我不确定,这应该也适用于
简单表单。比如:

<%= simple_form_for(:session, url: sessions_path) do |f| %>

更新:我成功地将示例应用程序的更改为使用
simple\u form\u for
创建新用户会话

当然,也就是说,假设会话控制器正在处理您的登录,并且它有一个响应POST的方法(可能是
create
)。控制器操作是您应该处理巫术登录的地方

如果您感到好奇,以下是Rails文档。

上面说:

这表示
form_tag
旨在将数据直接发送到另一个URL,由控制器操作处理。事实上,在RailsTutorial中,Michael Hartl使用
form_作为
函数,而不是
form_标签

form_for(:session, url: sessions_path)
基本上,这个想法是您发送数据以某种方式由控制器处理,而不是写入数据库。由于我们没有用户会话的模型,我们必须使用
:session
符号而不是
@session
,并告诉表单数据应该发布到哪里(哪个URL)

我怀疑,尽管我不确定,这应该也适用于
简单表单。比如:

<%= simple_form_for(:session, url: sessions_path) do |f| %>

更新:我成功地将示例应用程序的更改为使用
simple\u form\u for
创建新用户会话

当然,也就是说,假设会话控制器正在处理您的登录,并且它有一个响应POST的方法(可能是
create
)。控制器操作是您应该处理巫术登录的地方


如果您好奇的话,这里是Rails的文档。

我也在尝试这样做,但还是被卡住了。这似乎应该是可行的,但当我提交登录表单时,它导致了一个错误。以下是我的表单的外观:

<h1>Log in</h1>

<%= simple_form_for(:session, url: sessions_path) do |f| %>

    <%= f.error_notification %>

    <%= f.input :email %>
    <%= f.input :password %>
    <%= f.input :remember_me, :as => :boolean %>

    <div class="form-actions">
    <%= f.submit "Login", :class => 'btn btn-primary' %>
    </div>
<% end %>

<%= link_to 'Forgot Password?', new_password_reset_path %>
此外,我在控制台中遇到以下错误:

gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (0.8ms)

但是我的
routes.rb文件中有
resources:sessions

我也在尝试这样做,但遇到了问题。这似乎应该可以工作,但在提交登录表单时会导致错误。我的表单如下所示:

<h1>Log in</h1>

<%= simple_form_for(:session, url: sessions_path) do |f| %>

    <%= f.error_notification %>

    <%= f.input :email %>
    <%= f.input :password %>
    <%= f.input :remember_me, :as => :boolean %>

    <div class="form-actions">
    <%= f.submit "Login", :class => 'btn btn-primary' %>
    </div>
<% end %>

<%= link_to 'Forgot Password?', new_password_reset_path %>
此外,我在控制台中遇到以下错误:

gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (0.8ms)

但是我在我的
routes.rb
文件中有
资源:sessions

关于如何将其与omniauth身份一起使用有什么想法吗?我已经尝试了(:user,url:“/auth/identity/register”)
/code
简单的表单(
/code>关于如何使用omniauth标识的任何想法?我尝试了(:user,url:/auth/identity/register)的
简单表单
。user|u controller
def new@user=env['omniauth.identity']| | user.new end
。model/user.rb
类用户
。这“似乎”在本地起作用,但在heroku上不起作用,heroku错误与
ActionController::RoutingError(没有与[POST]“/auth/identity/register]匹配的路由”):
如果可以,请尝试删除您的第一条评论,因为它没有像您预期的那样通过。我不知道为什么会正常工作,给你一个Heroku上的路由错误。作为调试步骤,您应该在本地和Heroku上运行
rake routes
。我真的建议你把这个问题作为一个新问题来发布,如果有人帮助你,你就有机会赢得充分的声誉。如果你选择的答案对你有帮助的话,也很高兴投票支持。谢谢,我在这里提出了一个问题。仅供参考,两条路线完全相同。最后…呵呵,我不知道如何删除我的第一次评论。我说我最多有5分钟(或者是因为我按了回车键试图返回)他记不得了。再次干杯JR@gittinOld没问题。祝你好运有没有关于如何使用omniauth标识的想法?我已经尝试了(:user,url:“/auth/identity/register”)
/code
简单的表单(
/code>关于如何使用omniauth标识的任何想法?我尝试了(:user,url:/auth/identity/register)的
简单表单
。user|u controller
def new@user=env['omniauth.identity']| | user.new end
。model/user.rb<