2

我正在尝试使用登录表单创建主页。登录工作正常,但注册按钮最终尝试登录用户,而不是按预期重定向到注册页面。这是我正在使用的代码。知道如何解决此错误吗?谢谢。

    <div class="well sidebar-nav">
       <br>

        <%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
          <div class="input-prepend">
            <span class="add-on"><i class="icon-user"></i></span>
            <%= f.text_field :login, :required => false, :autofocus => true, :placeholder => "Username or Email" %>
          </div>

          <div class="input-prepend">
            <span class="add-on"><i class="icon-lock"></i></span>
            <%= f.password_field :password, :placeholder => "Password" %>
          </div>

          <div class="btn-toolbar">
            <div class="row-fluid">
              <div class="span4" style="margin-left: 1.25%; width: 50%">
                <button class="btn btn-success" type="submit">
                  <i class="icon-signin"></i>
                  <% f.submit 'Sign in' %> Sign In
                </button>
              </div>
              <% end %>


              <div class="span3" style="margin-left: -5%; width: 50%">
                <button class="btn btn-success">
                  <i class="icon-pencil"></i>
                  <%= link_to 'Sign up', new_user_registration_path  %> Sign Up
                </button>
              </div><!-- /span8 -->
            </div><!-- /rowfluid -->
          </div><!-- /btn-toolbar -->
      </div><!-- /well -->

更新:事实证明,将注册链接放在按钮类之外解决了这个问题。

4

1 回答 1

2

您应该寻找替换此代码:

<button class="btn btn-success">
    <i class="icon-pencil"></i>
    <%= link_to 'Sign up', new_user_registration_path  %> Sign Up
</button>

对我来说,您的语法本质上是不正确的。问题是您试图在按钮元素中放置一个链接,这将不起作用(它违反 HTML 语法)


你可能在找button_to帮手?

<%= button_to "Sign Up", new_user_registration_path, :method => "get" %>

这将在您的页面上创建一个小表单,将用户带到所需的 URL。不同之处在于用户只会看到按钮而没有其他内容:)

于 2013-10-23T15:48:55.203 回答