想手动来实现用户登录的功能不使用 scaffold 来加深对 rails 层次的理解,但是遇到瓶颈了求指导:) 我先创建了个表叫做 admins 内容如下 id(主键自增) admin(text) password(text) 1 admin 123
我再 rails generate controller login login 接下来我有了控制器 login: controllers/login.controller.rb 还会生成一个对应模板 index: views/login/login.html.erb
我还把登录的主页也改到了这个 login 页面 root :to => 'login#login'
我还创建了一个模型叫做 admin.rb 代码如下 (照别的复制过来的)
class Admin < ActiveRecord::Base
end
再在控制器中将 admins 表中的内容取出来,代码如下:
class LoginController < ApplicationController
def login
@admins=Admin.all
respond_to do |format|
format.html # login.html.erb
format.json { render json: @admins }
end
end
end
最后在页面用表单将表中的内容予以展示
<%= form_for(@admins) do |f| %>
<table>
<% @admins.each do |admin| %>
<tr>
<td><%= admin.id%></td>
<td><%= admin.name%></td>
<td><%= admin.password%></td>
</tr>
<% end %>
</table>
<% end %>
之后访问:问题出现了
Showing C:/Documents and Settings/Administrator/myweb/app/views/login/login.html.erb where line #1 raised:
undefined method `admin_path' for #<#<Class:0x21c8e38>:0x21c4728>
Extracted source (around line #1):
1: <%= form_for(@admins) do |f| %>
2: <table>
3: <% @admins.each do |admin| %>
4: <tr>
如果我把 login.html.erb 清空,我还可以看到一个空白的页面,但是加上表单内容就会看到以上的错误,所以得知是表单的问题,但是我表单仅仅是把表内的内容予以显示为什么就不对呢?