我用RSpec测试我的铁路应用,但随后我遇到一个问题。 因此,我希望有一个前后一致的数据库,我施加了一个限制,即某些栏目不能完全无效。
我有评注模式,评论可能是对另一项评论的答复。 更确切地说,一项评论有一个IP地址,不应予以否定。 这就是移民:
create_table :comments do |t|
t.string :name, :limit => 20, :null => false
t.string :comment, :limit => 8192, :null => false
t.string :ip, :null => false
t.integer :answer_to_comment_id
end
然后,我建立了<条码>Comment模型,只有<条码>>,即条码>和<条码>>。
class Comment < ActiveRecord::Base
attr_accessible :name, :comment
belongs_to :answer_to, :class_name => "Comment",
:foreign_key => "answer_to_comment_id"
has_many :answers, :class_name => "Comment",
:foreign_key => "answer_to_comment_id",
:dependent => :destroy
end
www.un.org/Depts/DGACM/index_french.htm looks:
Factory.define :comment do |comment|
comment.name "test"
comment.comment "test"
comment.ip "0.0.0.0"
end
现在,在RSpec测试中,我有以下问题:comment_spec.rb
。
describe "some test" do
before(:each) do
@answer = @comment.answers.create(Factory.attributes_for(:comment))
end
end
由于<代码>:ip不在attr_accessible
清单之内,因此主动查询可在数据库中生成记录。 我可在名单上添加<代码>:ip,但这可能由于大规模派任而造成一些安全问题。 或可添加<代码>:ip 人工操作,但如果具备更多的特性,如<条码>,则会成为许多工作。
So I look for a possibility to bypass the attr_accessible
list. Or if you have a better design pattern, please let me know
谢谢。