博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3.3. Forms
阅读量:6712 次
发布时间:2019-06-25

本文共 2504 字,大约阅读时间需要 8 分钟。

3.3. Forms

上节我们学习了如何使用link 
helper
生成链接来从服务器端请求信息,但是在许多情况下,我们需要给服务器发送数据,这就是表单的作用了。首先,我们创建一个没有
Ajax
的表单。利用
form_tag helper
创建一个
form
元素。
<%= form_tag :action => 'reverse' %>
生成的html代码:
 
<
form
action
="/chapter3/reverse"
method
="post"
>
</form>
 
 
 
 
text_field_tag( name , value = nil , options = {} )
 
 
<%= text_field_tag "name", "Scott",

     :size     => 5,

     :disabled => true,

     :style    => "background-color: red" %>
这个helper产生的HTML代码:
 
<input type="text" name="name" id="name" value="Scott"  

  size="5"

  disabled="disabled"

  style="background-color: red" />

 
 
hidden_field_tag(name, value=nil, options={})
 
 
 
password_field_tag( name = "password" , value = nil , options = {} )
options选项和text_field_tag的一样。
file_field_tag( name , options = {} )
 
check_box_tag( name , value = "1" , checked = false ,options = {} )
 
options
选项和text_field_tag的一样。
 
radio_button_tag( name , value , checked = false , options = {} )
 
text_area_tag( name , content = nil , options = {} )
 
 
<
%= text_area_tag "body", nil, :size =
> "25x10" %>
 
 
select_tag( name , option_tags = nil , options = {} )
 
 
<
%= select_tag "people", "<option
>Joe
</option>" %>
 
 
<
%= form_tag :action =
> 'reverse' %>

  
<
p
>Text to reverse:
<
%= text_field_tag 'text_to_reverse' %
>
</p>

  
<
p
>
<
%= submit_tag 'Reverse!' %
>
</p>

<
%= end_form_tag %
>

表单把数据提交到了reverse这个action, 这个action在前面已经定义过了, 但是还需要一个对应的模板。在app/views/chapter3/reverse.rhtml中加入下面的代码:
 
<
%= @reversed_text %
>
 
 
 
Form helper
与前面讲的
form_tag helper
不同
,
它是用来构建表单,这个构建的表单是跟从
controller
中指派到模板中的
ActiveRecord 
对象相联系的。假设
controller
指派了一个
@person
对象到模板中,这个对象有一个
name
属性,就可以这么来创建这个表单:
<
%= text_field :person, :name %
>
form_tag helper
中有
name
value
这两个参数,在
form helper
中使用
object_name
method
参数。其中的可用选项类型是一样的:
text_field( object_name , method , options = {} )  


hidden_field( object_name , method , options = {} )  


password_field( object_name , method , options = {} )  


file_field( object_name , options = {} )  


check_box( object_name , method , options = {} , checked_value = "1" , unchecked_value = "0" )  


radio_button( object_name , method , tag_value , options = {} )  


text_area( object_name , method , options = {} )  


3.3.2
.1. Using form_for
当你创建与
ActiveRecord
对象一起工作的表单时,还有另外一个功能强大的
helper
 form_for
。这个
helper
form_tag
类似,除了它依赖于一个特定的
ActiveRecord
对象并且在
form_for
block
中可以使用
form helper
来使表单代码更简洁。一般情况下,与
ActiveRecord
对象一起工作最好的选择是使用
form_for
而不是
form_tag,
这也遵循了
DRY
原则。因为
ActiveRecord
并不是本书要讲述的范围,所以这里也不再废话。你可以在
Rails
API
文档中查阅有关
form_for
的更多细节。
本文转自 fsjoy1983 51CTO博客,原文链接:http://blog.51cto.com/fsjoy/91338,如需转载请自行联系原作者
你可能感兴趣的文章
高斯滤波器平滑图像代码
查看>>
分布式爬虫技术架构
查看>>
计费程序(服务器)
查看>>
Javascript的冒泡排序和二分查找
查看>>
Unity优化
查看>>
Linux下常用的日志收集命令
查看>>
JAVA NIO(知识一)
查看>>
nginx添加ssl模块
查看>>
centos 6.4 重启分区故障
查看>>
linux系统的启动流程
查看>>
yum管理软件
查看>>
CRLF注入漏洞
查看>>
(一) virtualenv虚拟环境安装
查看>>
利用ssh+rsync+inotify实现数据的异地实时同步
查看>>
std::string的工具函数 - 用ostringstream实现repeat
查看>>
Android官方开发文档Training系列课程中文版:分享简单数据之从其它APP接收简单数据...
查看>>
X Window没有在linux内核实现的原因
查看>>
IN2Windows: Case of the Unexplained Access Denied
查看>>
存储分类
查看>>
linux的历史及大事年表
查看>>