simple_form使用

1.安装simple_form

 

sudo gem install simple_form  

2.修改Gemfile:

 

 

gem "simple_form" 

 3.生成配置文件

 

 

rails generate simple_form:install  
#生成文件   
 create  config/initializers/simple_form.rb  
 create  config/locales/simple_form.en.yml  
 create  lib/templates/erb/scaffold/_form.html.erb

4.以User model为例说明使用方法

 

 

<%= 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 

<%= f.input :login,:label=>false %>  

  同样,如果想使required为false

 

<%= f.input :login, :required => false %> 

5.关于as 
  在activerecord下,会自动对应相关映射,例如:string生成单行文本,text生成多行文本,不过如果使用mongodb,我使用的是mongoid,没有text 
类型,全是string,所以要自己手动as,例如 

 

 

<%= f.input :profile,:as=>:text%> 

6. Associations 使用 

 

 

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 

  表单中我们可以使用 

 

 

<%= 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),只要修改 

 

SimpleForm.wrapper_tag = :p  
#默认情况下 
config.components = [ :label_input, :hint,:error]  
  如果不想使用error,只要去掉 即可 

config.components = [ :label_input, :hint]  
8.国际化,只要修改对应本地化文件即可

zh:  
  simple_form:  
    labels:  
      user:  
        username: '用户名'  
        password: '密码'  
    hints:  
      user:  
        username: '登录用户名.'  
        password: '输入正确的字符.'  
    placeholders:  
      user:  
        username: '你的用户名'  
        password: '****' 





 

 



 

转载于:https://www.cnblogs.com/viaivi/archive/2010/10/08/1846160.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值