[size=large][color=olive]动态的向列表添加项
这里使用一个简单的 tags 表
其实以前我有一个项目作的时候比这个复杂多了, 这里就简单讲一下基本的使用方法,要运用到实际项目中还需要你能触类旁通.
定义一格tags 的表.
db/migrate/001_create_tags.rb:
class CreateTags < ActiveRecord::Migration
def self.up
create_table :tags do |t|
t.column :name, :string
t.column :created_on, :datetime
end
end
def self.down
drop_table :tags
end
end
通过在模型中使用 active Record 校验 可以保证 tag 是唯一的.
app/models/tag.rb:
class Tag < ActiveRecord::Base
validates_uniqueness_of :name
end
在布局中调用prototype.js 和他所对应的样式。
app/views/layouts/tags.rhtml:
<html>
<head>
<title>Tags</title>
<%= javascript_include_tag :defaults %>
</head>
<body>
<%= yield %>
</body>
</html>
在 list.rhtml 中包含新的标签表单核一个 调用局部模版,来显示列表。
app/views/tags/list.rhtml:
<h1>Tags</h1>
<% form_remote_tag(:update => 'list',
:complete => visual_effect(:highlight, 'list'),
:url => { :action => :add } ) do %>
<%= text_field_tag :name %>
<%= submit_tag "Add Tag" %>
<% end %>
<div id="list">
<%= render :partial => "tags", :locals => {:tags => @tags} %>
</div>
局部模版负责生成选择列表,
app/views/tags/_tags.rhtml:
Total Tags: <b><%= tags.length %></b>;
<select name="tag" multiple="true" size="6">
<% i = 1 %>
<% for tag in tags %>
<option value="<%= i %>"><%= tag.name %></option>
<% i += 1 %>
<% end %>
</select>
控制器包含两个动作, 一个是list ,他传递一个存储的标签列表来用作出示显示。 另一个是ADD , 添加新的标签,重新渲染模版。
app/controllers/tags_controller.rb:
class TagsController < ApplicationController
def list
@tags = Tag.find(:all,:order => "created_on desc")
end
def add
Tag.create(:name => params[:name])
@tags = Tag.find(:all, :order => "created_on desc")
render :partial => "tags", :locals => {:tags => @tags}, :layout => false
end
end
[/color][/size]
分享到:
相关推荐
动态添加、删除ListView列表项, 对ListView的动态操作通常通过一个自定义Adapter实现添加、删除被选中的列表项,以及清空所有的列表项
这是我之前做的一个项目要实现的一个功能,Jlist 动态添加删除移动Jcheckbox
这是一款实用的jQuery动态添加移动列表插件,jQuery动态添加数据代码,jQuery动态数据代码。
网上搜集了很多关于Labview Xcontrol 方面零零散散的资料, 能用的或者带源码的很少,最近做项目的原因,恰好需要一个给用户选择可以根据输入数组信息, 动态加载和勾选所需的内容的功能, 自己参考部分别人的图片信息, ...
本例子主要是自定义一个下拉列表框,演示Spinner的用法,在Android中创建一个DropDownView,动态添加列表框的值,示例运行后,用户即进入添加模式,添加后列表框中会一项内容,依次类推,单击下拉框会看到所添加的值...
VC 动态添加CCList列表内容项,动态添加数据项,CCList列表,基础的例子,高手请绕行。
使用列表控件添加和选择数据项,希望对动态添加控件的朋友有所帮助
编写一个列表框应用程序,能够对列表项进行添加、修改和删除。
NULL 博文链接:https://cnhnslhs-163-com.iteye.com/blog/1533804
原创博客中:”那些复杂的列表总要弄个清楚——(一)ListView动态添加项 “的代码
javascript为下拉列表添加数据项.html 代码如下: <!DOCTYPE html> <html xmlns=”http://www.w3.org/1999/xhtml”> <head> <meta http-equiv=”Content-Type” content=”text/html; charset=utf...
主要介绍了C#实现Winform动态添加菜单的方法,涉及C#操作菜单的技巧,需要的朋友可以参考下
*请选择1-3个知识点. 1213123123 2123123123 3213123213 4123213213 5213123213 6213123213 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
Android使用addView动态添加组件,自定义添加列表项,添加LinearLayout
2. js部分,建一个function方法,利用ajax,指向 ‘getAllTypes.action’ 的servlet部分,获取传来的下拉列表的数据,动态填充 <span xss=removed> </span>function loadType(){ <span xss=removed> $.get( ...
DataGridView中添加ComboBox和按钮的控件
因为它这个是创建时自动加载的...首先说明一下,我的方法也不是官方的方法,只是自己灵机一动想到的,下面是动态增加列表项的方法. 在方法之前我的关于multiselect对象的store是这样定义的: 代码如下:flowDs = n
摘要:VC/C++源码,其它分类,动态删除 VC++列表值动态添加与删除,以前见到过的小功能,点选按钮可在左侧的列表框中动态增加项值、删除项值,类似网页中的Select列表,在用法上有相似之处。