ruby

领取游戏新手卡来http://5433.com

导航

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: '****' 





 

 



 

posted on 2010-10-08 22:26  最初的模样  阅读(2210)  评论(1编辑  收藏  举报