看看蛙眼的博客分类管理,有点In Place Editing的意思,是否让用户感觉更方便呢?
Rails有许多很小的好处,让人欲罢不能。
今天来看看Rails使用script.aculo.us让In Place Editing更简单,让你的应用更加Web2.0
1,新建Rails项目,配好数据库设置
rails test
2,添加contacts表
ruby script/generate migration AddContactsTable
然后修改001_add_contacts_table.rb:
class AddContactsTable < ActiveRecord::Migration
def self.up
create_table :contacts do |t|
t.column :name, :string
t.column :email, :string
t.column :phone, :string
t.column :address_line1, :string
t.column :address_line2, :string
t.column :city, :string
t.column :state, :string
t.column :country, :string
t.column :postal_code, :string
end
end
def self.down
drop_table :contacts
end
end
然后运行rake:
rake db:migrate
3,生成Contact的scaffold
ruby script/generate scaffold Contact
4,添加默认的javascript库
修改app/views/layouts/contacts.rhtml,添加以下代码:
<%= javascript_include_tag :defaults %>
5,添加In Place Editing效果
修改app/views/contacts/show.rhtml
<% for column in Contact.content_columns %>
<p>
<b><%= column.human_name %>:</b>
<%= in_place_editor_field :contact, column.name %>
</p>
<% end %>
<%= link_to 'Back', :action => 'list' %>
注意<%= in_place_editor_field :contact, column.name %>这行代码就可以添加In Place
Editing效果,添加一个Contact并查看Show页面,实际上生成一段Javascript代码:
new Ajax.InPlaceEditor(....)
这里是对Contact所有的字段作In Place Editing,我们也可以只指定某一个字段,如:
<%= in_place_editor_field :contact, :name %>
但是现在还不能编辑字段,因为ContactsController没有相应的set_contact_attr()方法
还好Rails有相应的Convention来节省代码,在ContactsController里添加以下代码:
Contact.content_columns.each do |column|
in_place_edit_for :contact, column.name
end
这样自动为每个字段生成set_contact_attr()方法了,现在访问页面看看效果吧!
6,更改InPlaceEditor的输入框的样式
参考
Rails Framework Documentation的方法API即可
例如这里我们可以让输入框改为5行15列的textarea:
<% for column in Contact.content_columns %>
<p>
<b><%= column.human_name %>:</b>
<%= in_place_editor_field :contact, column.name, {}, {:rows => 5, :cols => 15} %>
</p>
<% end %>
<%= link_to 'Back', :action => 'list' %>
或者我们直接更改CSS做更细节上的修改:
.inplaceeditor-form input[type="text"] {
width: 260px;
}
分享到:
相关推荐
Ajax-Rails-4-AJAX-Form.zip,rails 4 ajax表单示例,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新加载网页的情况下...
Ajax-Rails-4-AJAX-modal-form-render-JS-response-as-table-row.zip,rails 4 ajax模式表单将js响应呈现为表行,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于...
rails-hackernews-reddit-producthunt-clone, 黑客 news/reddit/social 链接分享网站 用 Rails 构建 Rails 上的 Reddit-Hackernews-ProductHunt克隆演示 这是一个 readme.md的Ruby on Rails 应用程序,模仿了 Hacker...
《Agile Web Development with Rails-Second Edition-Beta》是一本专注于使用Ruby on Rails进行敏捷Web开发的书籍。这本书的第二版beta版提供了关于如何利用Rails框架高效构建动态、响应式网站的深入指导。作者们...
Rails,全称Ruby on Rails,是一款基于Ruby语言的开源Web应用程序框架,以其“Don't Repeat Yourself”(DRY)和“Convention over Configuration”(CoC)的原则,深受开发者喜爱。Awesome Rails Gem 是一个广泛...
这个配置会创建一个Rails应用服务、一个PostgreSQL数据库服务和一个Redis服务,确保所有组件正确连接并运行。 总之,结合Rails5和Docker Compose,我们可以构建一个强大的Scrum Poker应用,提供实时的估算讨论环境...
支持JQuery的Edit In Place Rails插件(rakuto),使用简便轻巧,与大家共享。 例子 ======= # 控制器 class BlogController in_place_edit_for :post, :title end # Customize the action that update the ...
在Ruby on Rails框架中,构建表单是一项常见的任务,而Simple Form gem就是为了简化这一过程而设计的。Simple Form是一款强大的表单构建器,它提供了一种简洁、直观的方式来创建复杂的表单,使得开发者能更专注于...
rails3-mongoid-devise, 示例 Rails 3.2应用,带有数据 Mongoid,用于验证 Rails 4.1有关设计的Rails 4.1示例应用程序,请参见:rails设计有一个用于设计的教程:Rails 设计教程。类似示例和教程这是来自 RailsApps...
rails-documentation-2-0-2
标题 "rails-documentation-1-2-1.zip" 暗示这是一份关于 Ruby on Rails 框架的文档,版本为 1.2.1。Ruby 是一种面向对象的编程语言,而 Rails 是一个基于 Ruby 的开源 Web 应用程序框架,遵循 Model-View-...
rails-beginner-s-guide是Rails 指导手册,帮组学习了解rails开发
Rails 3.1 和 Cucumber-Rails 1.2.0 是两个在Web开发领域非常重要的工具,尤其对于Ruby on Rails框架的测试和自动化流程。本文将深入探讨这两个组件,以及它们如何协同工作来增强软件开发的效率和质量。 首先,...
upmin-admin 是一个为 Rails 应用开发的开源管理框架。用来管理 Rails 应用中各种对象(如 Model、View 和 Controller )。 标签:upmin
rails-dev-box, 面向 Ruby on Rails 核心开发的虚拟机 用于 Ruby on Rails 核心开发的虚拟机简介注意:这个虚拟机不是为 Rails 应用程序开发而设计的,只是为。 这个项目自动设置开发环境,以便在 Ruby on Rails ...