`
hideto
  • 浏览: 2667058 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Rails宝典之第十式: 重构用户名-p1

    博客分类:
  • Ruby
阅读更多
看这个显示用户Profile的页面:
<h1>Profile</h1>
<p>
  Name:
  <%= @user.first_name %>
  <%= "#{@user.middle_initial}." unless @user.middle_initial.nil? %>
  <%= @user.last_name %>
</p>

<% link_to 'Users List', users_path %>

当别的页面需要显示用户名时,我们又得将上述代码copy一遍,敏感的开发人员可能已经闻到“风水”或bad smell了吧。

好,我们来重构:
class User < ActiveRecord::Base
  def full_name
    name = first_name
    name += "#{middle_initial}." unless middle_initial.nil?
    name += last_name
    name
  end
end

页面就可以这样写了:
<h1>Profile</h1>
<p>
  Name:
  <%= @user.full_name %>
</p>

<% link_to 'Users List', users_path %>
分享到:
评论
3 楼 volnet 2007-08-02  
呵呵,Copy非正道
2 楼 jonlove 2007-07-30  
哦!对了!自己失误了!
1 楼 jonlove 2007-07-30  
我在controller创建了
  @user = User.find("1")

但在
   <h1>Profile</h1>  
<p>  
  Name:   
  <%= @user.full_name %>(报了错!说的undefined method `full_name' )  
</p>  
  
<% link_to 'Users List', users_path %>  

我就不能理解为什么@user能点出full_name方法!

相关推荐

    world wide web万维网英文课件:ch15-Introduction to Rails.ppt

    world wide web万维网英文课件:ch15-Introduction to Rails.ppt

    rails-react-test:使用react-rails和docker测试Rails应用程序

    Rails Docker示例该应用程序的Docker设置来自以下: :入门要开始运行: docker-compose build 然后运行: docker-compose up 要连接到正在运行的应用程序容器,请运行: docker exec -it restarone_app /bin/sh 可以...

    Rails的精简版本Rails::API.zip

    Rails::API 是 Rails 的精简版本,针对不需要使用完整 Rails 功能的开发者。 Rails::API 移除了 ActionView 和其他一些渲染功能,不关心Web前端的开发者可更容易、快速地开发应用程序,因此运行速度比正常的 Rails ...

    rails-rail-in:rails-rail-in 用于查找印度铁路信息,例如火车列表、车站列表、路线、票价、PNR 状态、座位可用性等

    Rails::Rail::In rails-rail-in 用于查找印度铁路信息,例如火车列表、车站列表、路线、票价、PNR 状态、座位可用性等。 安装 要使用 Bundler 安装,请获取最新的稳定版本: gem 'rails-rail-in' , '~&gt; 1.0.0' ...

    Agile Web Development with Rails Final

    ### Agile Web Development with Rails Final: Key IT Knowledge Points #### Introduction: Ruby on Rails Framework Ruby on Rails (often shortened as Rails) is a server-side web application framework ...

    rails-uploader:用jQuery-File-Upload实现Rails文件上传

    安装在Gemfile中: gem 'rails-uploader'在航线上: mount Uploader :: Engine =&gt; '/uploader' 迁移ActiveRecord: $ bundle exec rails g uploader:install用法存储上传文件的架构(cancan集成): class Asset &lt...

    Rails 101 入门电子书

    《Rails 101 入门电子书》是一本非常适合初学者直接入门的书籍,它由xdite编写并出版于2014年6月10日。本书主要针对的是希望学习Ruby on Rails框架的读者,特别是那些想要从零开始掌握这项技术的新手。 #### 二、...

    Rails上的API:使用Rails构建REST APIAPIs on Rails: Building REST APIs with Rails

    在本篇内容中,我们将深入探讨如何利用Ruby on Rails(简称Rails)这一强大的Web应用程序框架来构建可伸缩且易于维护的RESTful API。Rails以其简洁优雅的语法、高效的开发速度以及良好的社区支持而闻名,这使得它...

    Simply Rails 2 2nd Edition (2008)

    ##### 第10章:Rails插件 - **主要内容**:介绍如何使用和开发Rails插件,包括Gem包管理工具的使用等。 - **学习目标**:了解Rails生态系统中的第三方库资源,能够根据项目需求选用合适的插件。 ##### 第11章:...

    重构你的Rails程式码

    ### 重构你的Rails程式码 在进行Rails版本升级时,重构代码是一个绝佳的机会。本文将深入探讨为何这是个好时机来进行重构,并提供一系列实用的方法帮助您优化代码。 #### 为什么这是一个好时机重构代码? 1. **...

    x-editable-rails:使用X-Editable帮助器轻松编辑字段

    X :: Editable :: Rails X可编辑的Rails 现场演示 结帐直播演示 安装 将此行添加到您的应用程序的Gemfile中: gem 'x-editable-rails' 然后执行: $ bundle 或自己安装为: $ gem install x-editable-rails 用法...

    atom-rails-db-scheme:Rails数据库模式的Autocomplete +提供程序

    Rails数据库方案 Rails数据库模式的Autocomplete +提供程序。 特征 自动完成活动记录 根据当前上下文打开模式文件 设定值 将Rails语法设置为默认语法。 " * " : core : customFileTypes : " source.ruby.rails...

    ng-rails-csrf:of-rails-csrf

    ng-rails-csrf 一起使用 AngularJS 和 Rails? 如果您正在发出任何 HTTP 请求,那么“ng-rails-csrf” gem 可以通过自动将 CSRF 令牌添加到 HTTP 标头来提供帮助。 如果您使用 CSRF 保护,Rails 将不会接受没有此...

    Capn-Crunch:Delta 团队 - Capstone 项目

    Capn-紧缩 设置 在本地运行应用程序的最初几个步骤 git 克隆 安装所需的 gems: bundle install 在不同的环境中运行 Rails 服务器: rails server --environment [test | ... 要使用 sqlite3,请确保第 1-21 行没

    sassc-rails:将SassC-Ruby与Rails集成!

    SassC :: Rails 我们都喜欢使用Sass,但是对于较大的代码库,编译可能需要很长时间。 该gem将Sass的C实现集成到资产管道中。 在一个较大的项目中,这使编译速度提高了4倍: # Using sassc-rails[1] pry(main)&gt; ...

    Rails中应用Ext.tree:以中国的省市地区三级联动选择为例

    在Ruby on Rails(Rails)框架中,开发人员经常需要实现各种...通过学习这个实例,开发者可以掌握如何在Rails应用中集成第三方库,处理层级数据,以及创建交互式的前端界面。这对于提升Web应用的用户体验非常有价值。

    didww-v3-rails-sample:Rails didww-v3 gem集成示例

    didww-v3-rails-sample 这是一个简单的Rails应用程序,演示了 gem集成。 有关获取DIDWW API密钥的详细信息,请访问 看到它在上实时运行或本地运行确保已安装 , 和 。 git clone git@github....

Global site tag (gtag.js) - Google Analytics