Rails 今天写登录功能时遇到的问题,求指导

douya0808 · 2012年03月30日 · 最后由 xguox 回复于 2012年03月31日 · 2657 次阅读

页面:

<%= form_tag :action=>'login' do %>
帐号:<br>
<%= text_field :admin, :name %><br>
密码:<br>
<%= password_field :admin, :password %><br>

—————————————————————————————————————— 控制器:

def login
  @name=params[:admin][:name]
  @password=params[:admin][:password]
  @user=Admin.find_by_name_and_password(@name,@password)
  if @user
     redirect_to(:action => "success")
  else
     redirect_to(:action => "fail")
  end
end

—————————————————————————————————————— Q1(页面中):不是在 form_for 里用 text_field 在 form_tag 用 text_field_tag 吗?这里的 form_tag 怎么也能用 text_field_tag 而且不用 f.text_field_tag 这样来调用呢? —————————————————————————————————————— Q2(页面中): 在 text_field :admin, :name 前面的参数书上说是对象名,我在哪都没申请过对象啊,我这是一个空表单等着用户输入呢对象名是啥意思呢?其实第一个参数是不是就是 model 的名呢? —————————————————————————————————————— Q3(控制器中): params[:admin][:password] 这个参数也是两个参数了,这里的参数和表单的两个参数对应着写就行了吗?第一个参数:admin 也是 model 的名?

最后虽然功能实现了 但是以上三点不明白 希望有前辈指导一下下 我是真的想过查过了哟:)

先学用 markdown 排版,版式好看了,然后就有人有兴趣仔细阅读了,然后,解决方案就有了,呵呵。

我们的阅读体验真的很挑剔。=)

为什么我改了版式进来后还是给我砍齐了呢=。=杯具呀

#3 楼 @douya0808 在页面里面按一下“M”,会跳出这个:

文字读着也难懂,在公车上看着头晕。 同是新手,我尝试回答下。 1、_tag 结尾的一组是 html helper,纯粹生成 html 用的,另外一组的则是与 model 搭配试用的 form helper,这个你要回头认真看一遍了。 2、html help 中的两个符号参数应该是定义表单字段的数据结构为两层。 3、params 的二级引用就是为了获取上一点说的数据…

@lgn21st 嘿嘿 谢谢指点 改完之后格式是规整多了:)

@lanisle你这都是手机敲的啊 太辛苦你啦 不过我还是没更进一步明白 继续跪等-.-

Q1&Q2:可能楼主输入有些笔误了吧?我猜你是要问(这里的form_tag 怎么也能用 text_field 而且不用 f.text_field 这样来调用呢?) 可能一般情况都是

<%= form_for @admin do |f| %>
  name: <%= f.text_field :name %>
  ...
<% end %>




如果换成不要遍历的话也可以用 form_tag 的用法,或者继续用<%= f.text_field :admin,:name %>这种用法,注意参数。也就是说这个:admin 代替了原本的 @ admin 的遍历

另外不知道你所说的申请对象是啥意思?是指新建对象吗?如果是的话那应该你在 controller 的对应的 action 里应该是有的吧。

第一个参数我觉得不该理解是 model 名,而是在 controller 创建的对象名,不过在 view 中用符号来表示

Q3 基本同上,一个二维的哈希。

最后,同是新手 +1,勉强看看我的理解吧。如有理解错误就请权威指出。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号