在Rails 4.1.7中安装authlogic 3.4.3

时间:2014-11-26 12:31:15

标签: authlogic

从昨天开始,我一直在尝试在项目中安装authlogic。我可以看到,所有示例和文档都面向rails和authlogic的旧版本。但是,我试着遵循:

文档中的示例 轨道广播 其他网站示例如:http://www.logansbailey.com/2010/10/06/how-to-setup-authlogic-in-rails-3/(对我来说,直到现在最有用的教程) 我没有让authlogic正常工作。 我通过gemfile和bundle安装顺序安装了gem。 我生成了一个模型用户并运行了迁移

$ rails生成脚手架用户名:string email:string crypted_pa​​ssword:string password_salt:string persistence_token:string $ rake db:migrate

我将以下行添加到模型user.rb:

acts_as_authentic

然后,我输入一个注册新用户的链接:link_to" Register",new_user_path 我编辑/app/views/users/index.html.erb看起来像:

<h1>Listing users</h1>

<table>
  <tr>
    <th>Username</th>
    <th>Email</th>
    <th></th>
    <th></th>
    <th></th>
  </tr>

<% @users.each do |user| %>
  <tr>
    <td><%= user.username %></td>
    <td><%= user.email %></td>
    <td><%= link_to 'Show', user %></td>
    <td><%= link_to 'Edit', edit_user_path(user) %></td>
    <td><%= link_to 'Destroy', user, :confirm => 'Are you sure?', :method => :delete %></td>
  </tr>
<% end %>
</table>

<br />

<%= link_to 'New User', new_user_path %>

和app / views / users / _form.html.erb看起来像:

<%= form_for(@user) do |f| %>
  <% if @user.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>

      <ul>
      <% @user.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :username %><br />
    <%= f.text_field :username %>
  </div>
  <div class="field">
    <%= f.label :email %><br />
    <%= f.text_field :email %>
  </div>
  <div class="field">
    <%= f.label :password %><br />
    <%= f.password_field :password %>
  </div>
  <div class="field">
      <%= f.label :password_confirmation %><br />
      <%= f.password_field :password_confirmation %>
    </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

现在,当我尝试注册用户时,我收到两个错误:

-Password is too short (minimum is 4 characters)
-Password confirmation is too short (minimum is 4 characters)

我已经放了更长的密码,但它没有用。

任何帮助?

谢谢

1 个答案:

答案 0 :(得分:0)

根据错误消息而不看到用户控制器,似乎没有将password和password_confirmation传递给用户模型。这可能是防止质量分配问题的Rails 4。为此,在用户控制器的create方法中,您可以说:

@user = User.new(user_params)

然后定义user_params方法:

def user_params
  params.require(:user).permit(:password, :password_confirmation, :name, :email)
end