用simple from暂不用formtastic
Formbuilder simple_form使用
博客分类:rails
Rails中表单用的比较多,其中formtastic是一个比较简单的构建表单的gem.我个人用了一阵子,不太喜欢它生成的标签,后来发现了Simple_form,相比formtastic,可以更好自定义标签,有更大的灵活性。
关于 formtastic ,railscasts上有相关教程,可参考railscasts
1.安装gem
![](http://doabit.iteye.com/images/icon_star.png)
- sudo gem install simple_form
2.修改Gemfile:
![](http://doabit.iteye.com/images/icon_star.png)
- gem "simple_form"
3.运行generator,会生成所需文件
![](http://doabit.iteye.com/images/icon_star.png)
- rails generate simple_form:install
![](http://doabit.iteye.com/images/icon_star.png)
- #生成文件
- create config/initializers/simple_form.rb
- create config/locales/simple_form.en.yml
- create lib/templates/erb/scaffold/_form.html.erb
4.使用,以User model为例
![](http://doabit.iteye.com/images/icon_star.png)
- <%= simple_form_for @user do |f| %>
- <%= f.input :username %>
- <%= f.input :password%>
- <%= f.input :email%>
- <%= f.input :profile,:as=>:text%> #as使用
- <%= f.input :age, :collection => 18..60 , :prompt => "Select your age"%> #collection使用
- <%= f.simple_fields_for :adress do |adress_form| %> #simple_fields_for使用
- <%= adress_form.input :name %>
- <% end %>
- <%= f.button :submit %>
- <% end %>
如果 不想生成 label,可以使其设置为false
![](http://doabit.iteye.com/images/icon_star.png)
- <%= f.input :username,:label=>false %>
同样,如果想使required为false,
![](http://doabit.iteye.com/images/icon_star.png)
- <%= f.input :username, :required => false %>
5.关于as
在activerecord下,会自动对应相关映射,例如:string生成单行文本,text生成多行文本,不过如果使用mongodb,我使用的是mongoid,没有text
类型,全是string,所以要自己手动as,例如
![](http://doabit.iteye.com/images/icon_star.png)
- <%= f.input :profile,:as=>:text%>
6. Associations 使用
![](http://doabit.iteye.com/images/icon_star.png)
- class User < ActiveRecord::Base
- belongs_to :company
- has_and_belongs_to_many :roles
- end
- class Company < ActiveRecord::Base
- has_many :users
- end
- class Role < ActiveRecord::Base
- has_and_belongs_to_many :users
- end
表单中我们可以使用
![](http://doabit.iteye.com/images/icon_star.png)
- <%= simple_form_for @user do |f| %>
- <%= f.input :name %>
- <%= f.association :company %>
- <%= f.association :roles %>
- <%= f.button :submit %>
- <% end %>
7.配置 config/initializers/simple_form.rb
Wrapper,如果想修改生成的标签为P(默认为div),只要修改
![](http://doabit.iteye.com/images/icon_star.png)
- SimpleForm.wrapper_tag = :p
默认情况下
![](http://doabit.iteye.com/images/icon_star.png)
- config.components = [ :label_input, :hint,:error]
如果不想使用error,只要去掉 即可
![](http://doabit.iteye.com/images/icon_star.png)
- config.components = [ :label_input, :hint]
更多配置可自行参考文件
8.国际化,只要修改对应本地化文件即可,
![](http://doabit.iteye.com/images/icon_star.png)
- zh:
- simple_form:
- labels:
- user:
- username: '用户名'
- password: '密码'
- hints:
- user:
- username: '登录用户名.'
- password: '输入正确的字符.'
- placeholders:
- user:
- username: '你的用户名'
- password: '****'
9. 和formtastic的比较
我个人比较喜欢 simple_form,生成的代码简洁些,更加灵活,可自定义性强。
10.textmate支持
formtastic:formtastic_tmbundle
simple_form:simple_form_tmbundle
![](http://img.zemanta.com/pixy.gif?x-id=b0a59524-4870-8692-9581-e7f8e03e38a2)
用simple from暂不用formtastic相关推荐
- 小米会不会使用鸿蒙系统,不能道德绑架,小米、OV们暂不用鸿蒙,合情合理,华为也能理解...
自从华为表态鸿蒙系统6月2日正式使用在手机上之后,网友们最期待的就是小米.OV.荣耀这些友商们在手机上使用鸿蒙了. 因为国产机太强大了,一旦这些友商都在手机上使用上了鸿蒙,鸿蒙不成功都难,因为这样就占 ...
- tipask 修改,临时的(暂没进行很好的全面考虑,为上线用)
此问吧程序基本上是 通过index.php来传递操作信息; 在control(起了设置参数=功能)中对应的名字的php调用model(用于实现功能)对应名字的php; 再调用对应的html来显示; h ...
- 为什么使用Stelnet与sftp协议,而不用telnet与ftp协议
网络工程师了解本文的必要性: 本文所述为网络工程师的操作基础第一课,大中型企业一般地理范围宽,尤其在要求效率高.业务连续性强,对网络的可用性.稳定性和可靠性要求高的企业,一般不采用跑腿的方式,使用笔记 ...
- 树莓派写卡后连接诸多问题及方法
一些关于树莓派的文章https://www.cnblogs.com/emouse/archive/2013/06/07/3124027.html www.jijigongzuoshi.com/无屏幕和 ...
- flume写入mysql_Flume高级之自定义MySQLSource
1 自定义Source说明 Source是负责接收数据到Flume Agent的组件.Source组件可以处理各种类型.各种格式的日志数据,包括avro.thrift.exec.jms.spoolin ...
- Windows XP下vs2010中配置OpenCV2.4.3
1. 从http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.3/下载OpenCV2.4.3: 2. 将OpenCV ...
- Windows 7 64位机上OpenCV2.4.3的编译、安装与配置
1. 从http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.3/下载OpenCV2.4.3: 2. ...
- Windows7 64位下vs2008配置OpenCV2.3.1
1.下载OpenCV2.3.1:http://www.opencv.org.cn/index.php/Download: 2.下载后解压缩:OpenCV-2.3.1-win-superpack.exe ...
- SpringBoot+flowable快速实现工作流,so easy!
欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/zhan107876/article/ details/120815560 总览 使用flowab ...
最新文章
- 【Python】PAT-1007-素数对猜想
- 解决 : Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile
- 【转】Linux內核驅動之GPIO子系統(一)GPIO的使用 _蝸牛
- ALSA声卡10_从零编写之数据传输_学习笔记
- Grup加密(使其不能强制更改密码)
- 微信扫码登陆(1)---扫码登录流程讲解、获取授权登陆二维码
- 文本分割器TXTSpliter
- 如何把PDF文件拼接成一个?
- 机器学习/深度学习常用库的配置及其适用的算法总结
- Opencv中的DPM应用
- 1132: 数字字符统计 C语言
- 【matlab】matlab相关系数计算公式(Pearson和Spearman,以及Kendall Rank)
- QueryRunner常用方法
- 如何在HTML中修改网站标题和图标?
- Android的涂鸦智能设备几种入网方式
- OpenAI 最强对话模型 ChatGPT: 用户已破百万,落地将有几何
- linux下挂载硬盘!
- acr38u PHP调用,ACS ACR38U-N1智能卡读卡器驱动
- “打工皇帝”唐骏语录
- 12306余票及票价查询
热门文章
- 如何交叉编译 移植 QT
- 每个Java程序员必须知道的5个JVM命令行标志
- Android工程重新编译问题
- SQL基本操作(三):存储过程和触发器
- 升级到只读域控制器RODC
- 只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态。...
- UInput使用注意事项
- Exchange 2010升级补丁时的服务状态变化
- Greenplum:你不可不知的实施与维护最佳实践
- Java Code Examples for org.apache.ibatis.annotations.Insert