如何在property
课程中删除对Link
语句的多个引用?我使用
require
语句做了类似的事情
require 'sinatra'
require 'data_mapper'
require 'shotgun'
成为..
%w{sinatra data_mapper shotgun}.each { |lib| require lib}
%w{sinatra data_mapper shotgun}.each { |lib| require lib}
DataMapper::setup(:default, "sqlite3://#{Dir.pwd}/mini.db")
class Link
include DataMapper::Resource
property :id, Serial
property :title, Text, :required => true
property :url, String, :required => true
property :points, Integer, :default => 0
end
DataMapper.auto_upgrade!
答案 0 :(得分:1)
成为优秀开发人员的一部分是知道何时不尝试减少重复。从技术上讲,拥有多个property
语句是一种重复形式,但它是如此无害,以至于不值得你去除它。考虑到这里隐含的替代方法,我认为这一点尤其正确,我觉得这些方法令人困惑且难以阅读。
最终,这是一种不必要的习惯用语,会使您的代码难以维护。 property
陈述应该保持不变,我建议你不要采用不同的方法。
如果您出于某种原因绝对必须这样做,您可以使用:
[
[:id, Serial],
[:title, Text, :required => true],
[:url, String, :required => true],
[:points, Integer, :default => 0]
].each { |args| property *args }