有时候我们希望我们的表单拥有一致的显示风格,今天我们就看看用Rails怎样创建一个Helper来自定义表单。
1,实现自己的FormBuilder
在app/helpers/application_helper.rb里加入以下代码:
class TabularFormBuilder < ActionView::Helpers::FormBuilder
(field_helpers - %w(check_box radio_button)).each do |selector|
src = <<-END_SRC
def #{selector}(field, options = {})
@template.content_tag("tr",
@template.content_tag("td", field.to_s.humanize + ":") +
@template.content_tag("td", super))
end
END_SRC
class_eval src, __FILE__, __LINE__
end
end
def tabular_form_for(name, object = nil, options = nil, &proc)
concat("<table>", proc.binding)
form_for(name,
object,
(options||{}).merge(:builder => TabularFormBuilder),
&proc)
concat("</table>", proc.binding)
end
这里我们创建了tabular_form_for这个helper方法供页面使用,这里:builder => TabularFormBuilder用来生成一个table格式的表单。
2,在页面中使用自定义表单helper方法
<% tabular_form_for :contact do |f| %>
<%= f.text_field :name %>
<%= f.text_field :email %>
<%= f.text_field :phone %>
<% end %>
就这么简单!
让我们来给form table隔行加上背景色:
class TabularAlternatingColorFormBuilder < ActionView::Helpers::FormBuilder
(field_helpers - %w(check_box radio_button)).each do |selector|
src = <<-END_SRC
def #{selector}(field, options = {})
@template.content_tag("tr",
@template.content_tag("td", field.to_s.humanize + ":") +
@template.content_tag("td", super),
:class => (@alt = (@alt ? false : true)) ? "alt-row" : "" )
end
END_SRC
class_eval src, __FILE__, __LINE__
end
end
def tabular_form_with_alternating_colors_for(name, object = nil, options = nil, &proc)
concat("<table>", proc.binding)
form_for(name,
object,
(options||{}).merge(:builder => TabularAlternatingColorFormBuilder),
&proc)
concat("</table>", proc.binding)
end
修改default.css:
.alt-row {
background: #fab444;
}
页面调用:
<%= stylesheet_link_tag "default" %>
<% tabular_form_with_alternating_colors_for :contact do |f| %>
<%= f.text_field :name %>
<%= f.text_field :email %>
<%= f.text_field :phone %>
<% end %>
分享到:
相关推荐
Formbuilder是一个图形界面,可让用户构建自己的Web表单。 考虑使用Wufoo或Google Forms,但可以将其集成到您的应用程序中的轻量级组件。 Formbuilder.js仅处理创建表单的客户端逻辑。 它将输出表单的结构化JSON...
jQuery formBuilder是一个强大的前端开发工具,专为简化表单构建过程而设计。它允许开发者和非技术用户通过直观的拖放界面创建自定义的表单,无需深入HTML、CSS或JavaScript代码。这个插件极大地提高了表单设计的...
Creating a Custom Form Builder**:详细解释了如何构建自定义表单生成器,以便更灵活地管理表单元素。 - **13. Make Pretty Graphs**:介绍了一系列技巧,帮助开发者使用 Rails 创建美观的图表。 #### 小结 ...
如果你想用一个简单的FormBuilder界面和所有 Foundation 的优点来构建漂亮的表单,这个 gem 是给你的! FoundationFormBuilder 正在进行中。 我欢迎错误报告和拉取请求! 到目前为止,它仅在 Rails 4.2 和 Ruby ...
Ajax-Rails-4-AJAX-Form.zip,rails 4 ajax表单示例,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新加载网页的情况下...
在Ruby on Rails框架中,构建表单是一项常见的任务,而Simple Form gem就是为了简化这一过程而设计的。Simple Form是一款强大的表单构建器,它提供了一种简洁、直观的方式来创建复杂的表单,使得开发者能更专注于...
Create a usable and attractive login form using Bootstrap's styles, while ensuring the database table backing it is secure using Postgres' check constraints. See how creating an advanced Postgres ...
《Rails 101 入门电子书》是一本非常适合初学者直接入门的书籍,它由xdite编写并出版于2014年6月10日。本书主要针对的是希望学习Ruby on Rails框架的读者,特别是那些想要从零开始掌握这项技术的新手。 #### 二、...
You concentrate on creating the application, and Rails takes care of the details., Tens of thousands of developers have used this award-winning book to learn Rails. It’s a broad, far-reaching ...
《Rails101_by_rails4.0》是一本专注于Rails 4.0.0版本和Ruby 2.0.0版本的自学教程书籍,它定位于中文读者,旨在成为学习Rails框架的参考教材。Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它...
Your Ruby on Rails application is sick. Deadlines are looming, but every time you make the slightest change to the code, something else breaks. Nobody remembers what that tricky piece of code was ...
《Rails之道》详细讨论了Rails的程序代码并通过分析Rails中的代码片段来深入解释它的功能,同时,《Rails之道》部分章节也摘录了一些API文档中的内容,使读者能够快速地找到对应的API文档、相关的示例代码以及深入的...
Ruby on Rails,通常简称为Rails,是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何...
Ember Form Builder是一个Ember插件,可让您组装带有标签,验证和提示的表单,而无需重复自己的工作。 它受到Rails宝石的强烈启发。 Ember Form Builder 2.X需要Ember 3.16.0+ Ember Form Builder 1.X需要Ember ...
Rails 3.1 和 Cucumber-Rails 1.2.0 是两个在Web开发领域非常重要的工具,尤其对于Ruby on Rails框架的测试和自动化流程。本文将深入探讨这两个组件,以及它们如何协同工作来增强软件开发的效率和质量。 首先,...
从给定的文件信息来看,我们正在探讨的是一本关于Ruby on Rails的书籍,书名为《Simply Rails2》,作者是Patrick Lenz。本书旨在为初学者提供深入理解Ruby on Rails框架的指南,从基础概念到高级主题均有涵盖,是...
Rails之道.pdf 高清 带书签