📅  最后修改于: 2023-12-03 15:04:56.737000             🧑  作者: Mango
Ruby on Rails 2.1 是一个流行的 Web 开发框架,具有高效的开发能力和友好的语法。为了帮助你更好的使用 Rails 2.1,我整理了一些技巧和窍门,希望对你的开发工作有所帮助。
Active Record Callbacks 可以在模型保存、更新和删除时执行特定的操作。这些操作可以是代码、方法等。下面是几个常用的 Active Record Callbacks:
在验证之前运行方法。这对于调整属性值或引用其他对象非常有用。
class Person < ActiveRecord::Base
before_validation :normalize_name
private
def normalize_name
self.name = name.downcase.titleize
end
end
在验证之后运行方法。验证错误会被添加到错误集合中,在该挂钩之前可进行修改。
class Person < ActiveRecord::Base
after_validation :set_errors
private
def set_errors
errors.add(:base, "This record is invalid") if some_condition?
end
end
在保存时运行方法。这是一个非常有用的钩子,它可用于在保存记录之前操作数据。
class Person < ActiveRecord::Base
before_save :encrypt_password
private
def encrypt_password
self.password = Digest::SHA1.hexdigest(password)
end
end
在保存后运行方法。这是一个非常好的机会来执行与保存关联的其他操作。例如,您可以向关联记录中加入数据。
class Person < ActiveRecord::Base
after_save :add_to_mailing_list
private
def add_to_mailing_list
MailingList.add(email_address)
end
end
Partial 可以帮助您在视图中重用一部分代码。根据需要创建 Partial,然后在需要它的视图中包含它。
# app/views/shared/_navigation.html.erb
<nav>
<ul>
<li><%= link_to "Home", root_path %></li>
<li><%= link_to "About", about_path %></li>
<li><%= link_to "Contact", contact_path %></li>
</ul>
</nav>
# app/views/layouts/application.html.erb
<!DOCTYPE html>
<html>
<head>
<title>MyApp</title>
</head>
<body>
<%= render "shared/navigation" %>
<%= yield %>
</body>
</html>
Asset Pipeline 可以帮助您管理和编译应用程序中的各种资产(如 JavaScript 和 CSS 文件)。Asset Pipeline 还提供了压缩、预处理、缓存等功能。
默认情况下,Asset Pipeline 已经启用,您可以直接使用它。
<%= javascript_include_tag "application" %>
<%= stylesheet_link_tag "application" %>
Rails 的 Active Record 提供了 Query Interface,它提供了一种简单的方式来创建和执行数据库查询。Query Interface 可帮助您编写简单、明确的查询,并将它们链在一起。
下面是一个简单的示例:
Person.where(age: 18).order(name: :asc)
这将选择所有年龄为 18 岁的人,并按姓名字母顺序排序。
Validator 可以帮助您验证模型的属性。Rails 自带了一些常见的 Validator:
validates :name, presence: true
validates :email, uniqueness: true
validates :age, numericality: { only_integer: true, greater_than: 0 }
这将验证 name 是否存在、email 是否唯一,并且 age 是正整数且大于 0。
以上仅是 Ruby on Rails 2.1 的一些技巧和窍门,当然还有更多更复杂的用法。希望这些技巧和窍门能帮助到你,增强编程能力。