通过多选框实现多对多关系的数据输入

简介:
railscast第17集017_habtm_checkboxes的例解:
 
rails demo -d mysql
admin -u root create demo_development
 
ruby script/generate model product
ruby script/generate model category
 
 
---------001_create_products.rb
class CreateProducts < ActiveRecord::Migration
  def self.up
    create_table :products do |t|
      t.column :name, :string
      t.column :price, :decimal
    end
    
  end
  def self.down
    drop_table :products
  end
end
--------002_create_categories.rb
class CreateCategories < ActiveRecord::Migration
  def self.up
    create_table :categories do |t|
      t.column :name, :string
    end
    
    create_table :categories_products , :id=>false do |t|
      t.column :product_id, :integer
      t.column :category_id, :integer
    end
  end
  def self.down
    drop_table :categories
  end
end
运行
rake db:migrate
 
ruby script/generate product admin -f
 
在_form.rhtml中加入:
<p>   
  <% for category in Category.find(:all) %>   
  <div>   
    <%= check_box_tag "product[category_ids][]", category.id, @product.categories.include?(category) %>   
    <%= category.name %>   
  </div>   
  <% end %>   
</p> 
 
在admin_controller.rb里的update这个方法里加入:
def update
    params[:product][:category_ids] ||= []  
    @product = Product.find(params[:id])
    if @product.update_attributes(params[:product])
      flash[:notice] = 'Product was successfully updated.'
      redirect_to :action => 'show', :id => @product
    else
      render :action => 'edit'
    end
  end
 




本文转自 fsjoy1983 51CTO博客,原文链接:http://blog.51cto.com/fsjoy/103515,如需转载请自行联系原作者
目录
相关文章
带有上下级关系的数据改为树形菜单的数据
带有上下级关系的数据改为树形菜单的数据
54 0
|
存储 C语言
ArcGIS:Excel/Txt 文件生成点图层、属性表编辑的基本方法、属性表之间的连接(合并)和关联的操作、属性表的字段计算器的使用
ArcGIS:Excel/Txt 文件生成点图层、属性表编辑的基本方法、属性表之间的连接(合并)和关联的操作、属性表的字段计算器的使用
339 0
|
数据可视化 uml
UML图讲解(关联关系,单向关联,双向关联,自关联,组合关系,依赖关系,继承关系,实现关系)
UML图讲解,关联关系,单向关联,双向关联,自关联,组合关系,依赖关系,继承关系,实现关系。
3525 0
UML图讲解(关联关系,单向关联,双向关联,自关联,组合关系,依赖关系,继承关系,实现关系)
|
JavaScript 前端开发 Java
29jqGrid 3.0新特征- 显示/隐藏列
29jqGrid 3.0新特征- 显示/隐藏列
52 0
|
JavaScript 前端开发
46jqGrid 分组 - 隐藏分组列
46jqGrid 分组 - 隐藏分组列
43 0
|
开发者
标签嵌套和并列关系|学习笔记
快速学习标签嵌套和并列关系
标签嵌套和并列关系|学习笔记
关系,属性,域,元组,码,分量,关系模式
试述关系模型的概念,定义并解释以下术语:关系,属性,域,元组,码,分量,关系模式。 关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。 (l)关系:一个关系对应通常说的一张表 (2)属性:表中的一列即为一个属性 (3)域:属性的取值范围 (4)元组:表中的一行即为一个元组 (5)主码:表中的某个属性组,它可以惟一确定一个元组 (6)分量:元组中的一个属性值 (7)关系模式:对关系的...
523 0
|
Web App开发 API 数据库
零代码实现一对一表关系和无限主子表级联保存
本文主要介绍一对一关系和无限主子表在crudapi系统中的应用。一对一关系是指关系数据库中两个表之间的一种关系。关系数据库中第一个表中的单个行只可以与第二个表中的一个行相关,且第二个表中的一个行也只可以与第一个表中的一个行相关。
310 0
零代码实现一对一表关系和无限主子表级联保存
Focusable 属性和IsTabStop 属性之间的关系
原文:Focusable 属性和IsTabStop 属性之间的关系 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Libby1984/article/details/54881460 控件的Focusable 属性确定控件是否允许接收键盘输入焦点,控件的 IsTabStop 属性确定是否允许通过Tab键导航到控件。
1097 0