看一个场景,用户注册时需要填写First Name,Last Name,Password:
<h1>Register</h1>
<% form_for :user, :url => users_path do |f| %>
<p>
First Name<br/>
<%= f.text_field :first_name %>
</p>
<p>
Last Name<br/>
<%= f.text_field :last_name %>
</p>
<p>
Password<br/>
<%= f.password_field :password %>
</p>
<p>
<%= submit_tag 'Register' %>
</p>
<% end %>
我们可以使用虚拟属性来简化:
<h1>Register</h1>
<% form_for :user, :url => users_path do |f| %>
<p>
Full Name<br/>
<%= f.text_field :full_name %>
</p>
<p>
Password<br/>
<%= f.password_field :password %>
</p>
<p>
<%= submit_tag 'Register' %>
</p>
<% end %>
这样,我们输入Full Name而不是分别输入first_name和last_name,我们需要修改User类:
class User < ActiveRecord::Base
def full_name
[first_name, last_name].join(' ')
end
def full_name=(name)
split = name.split(' ', 2)
self.first_name = split.first
self.last_name = split.last
end
end
通过虚拟一个full_name属性来简化工作,当然,这需要确保用户输入的full_name中有空格:
def validate
validate.errors.add(:full_name, 'must have a space') unless full_name.include? ' '
end
分享到:
相关推荐
Rails::API 是 Rails 的精简版本,针对不需要使用完整 Rails 功能的开发者。 Rails::API 移除了 ActionView 和其他一些渲染功能,不关心Web前端的开发者可更容易、快速地开发应用程序,因此运行速度比正常的 Rails ...
使用Rails构建可伸缩和可维护API的最佳方法
Rails ::虚拟 使用RSpec或Test :: Unit为引擎生成虚拟应用程序的简单任务。 安装 将此行添加到您的应用程序的Gemfile中: gem 'rails-dummy' 然后执行: $ bundle 或自己安装为: $ gem install rails-dummy ...
Ruby.on.Rails.Tutorial,Learn.Web.Development.with.Rails,Third.Edition-中文版 文字版.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!
webpack-rails, 将 web pack与你的Ruby on Rails 应用程序集成 不再维护webpack-rails 不再被维护。 有关详细信息,请参阅 #90. web pack-railsweb pack 为你提供了将 web pack集成到现有的Ruby on Rails 应用程序中...
[Pragmatic Bookshelf] Crafting Rails Applications Expert Practices for Everyday Rails Development (E-Book) ☆ 图书概要:☆ Rails 3 is a huge step forward. You can now easily extend the framework, ...
《Rails之道》按照Rails的各个子系统进行组织编排,分别介绍了Rails的环境、初始过程、配置和日志记录,Rails的分配器、控制器、页面生成和路由,REST、资源和Rails,ActiveRecord的基础、关联、验证和高级技巧,...
Bootstrap 3 和 Rails 4(样例用的是Ruby 2.1.1,Rails 4.1.4) Table of Contents Preface 1 Chapter 1: Introducing Web Application Development in Rails 7 Why Bootstrap with Rails? 8 Setting up a Todo ...
NULL 博文链接:https://lzqustc.iteye.com/blog/439128
提供用于Rails 4.x(及更高版本)资产管道的Sprockets实现。 安装 gem 'sprockets-rails' , :require => 'sprockets/railtie' 或者,如果禁用了Bundler自动请求功能,则在config/application.rb require 'sprockets...
gem "mongoid_rails_migrations" 如何使用 创建迁移 $ rails generate mongoid:migration 运行迁移: $ rails db:migrate $ rails db:migrate:down VERSION= $ rails db:migrate:up VERSION= $ rails db:rollback...
初学 Ruby on Rails 必备之宝典
graphql-rails-generators 一些生成器可以轻松将Rails模型与集成。 我之所以创建它,是因为我浪费了太多的按键来手动复制模型架构以创建graphql类型。 该项目包含用于查看ActiveRecord模型架构的生成器,并为您...
minitest-rails, Rails的Minitest集成 minitestRails 5的Minitest集成 安装gem install minitest-rails这将安装以下宝石:minitest配置创建一个新的Rail
如果你想了解更多信息,请参阅说明和使用 Rails 已经支持属性的序列化,但是只能做 Yaml。 此 gem 升级了默认的 Rails 序列化方法,因此您可以序列化为 yaml、json 和 marshal(Ruby 二进制格式)。 如果您希望它...
Ruby on Rails Guides v2 - Ruby on Rails 4.2.5
Component-Based Rails Applications: Large Domains Under Control (Addison-Wesley Professional Ruby Series) By 作者: Stephan Hagemann ISBN-10 书号: 0134774582 ISBN-13 书号: 9780134774589 Edition 版本: ...
迷你轨道与Rails 6.1的Minitest集成安装gem install minitest-rails 这将安装以下gem: minitest配置创建一个新的Rails应用程序: rails new MyApp 选择一个版本如果您正在运行Rails 6.x,请在Gemfile中指定相应的6....
rails5-docker-alpine:使用Alpine Linux的Rails轻量级Docker开发环境
本书教您如何使用Ruby on Rails开发和部署真正的,具有工业实力的Web应用程序,Ruby on Rails是为诸如Twitter,Hulu,GitHub和Yellow Pages等顶级网站提供支持的开源Web框架。