Ruby on rails rails中是否有has#u association?(';association#u name';)方法
我只想删除实际属于该对象的资源。例如:Ruby on rails rails中是否有has#u association?(';association#u name';)方法,ruby-on-rails,Ruby On Rails,我只想删除实际属于该对象的资源。例如: Post.all.each do |post| if post.has_method?('name') true else false end end 但是检查关联: Post.all.each do |post| if post.has_many?('tags') true else false end end 或: 可能是(在Rails
Post.all.each do |post|
if post.has_method?('name')
true
else
false
end
end
但是检查关联:
Post.all.each do |post|
if post.has_many?('tags')
true
else
false
end
end
或:
可能是(在Rails 3中)?:
可能是(在Rails 3中)?:
您可以编写自己的方法:
def has_many?(association)
self.class.reflect_on_all_associations(:has_many).any?{|a| a.name == association}
end
def belongs_to?(association)
self.class.reflect_on_all_associations(:belongs_to).any?{|a| a.name == association}
end
所以
也可以使用简单的构造:
Post.all.each do |post|
post.methods.include?('tags') ? true :false
post.methods.include?('category') ? true :false
post.methods.include?('name') ? true :false
end
UPD
或者,正如您正确指出的,您可以使用respond\u to?
post.respond_to? :comments
您可以编写自己的方法:
def has_many?(association)
self.class.reflect_on_all_associations(:has_many).any?{|a| a.name == association}
end
def belongs_to?(association)
self.class.reflect_on_all_associations(:belongs_to).any?{|a| a.name == association}
end
所以
也可以使用简单的构造:
Post.all.each do |post|
post.methods.include?('tags') ? true :false
post.methods.include?('category') ? true :false
post.methods.include?('name') ? true :false
end
UPD
或者,正如您正确指出的,您可以使用respond\u to?
post.respond_to? :comments
Post.categories.exists?
如果没有任何categories
方法,将抛出错误谢谢您的帮助。我实际上使用的是rails 2.x应用程序:(Post.categories.exists?
如果没有任何categories
方法,将抛出一个错误谢谢你的帮助。我实际上使用的是rails 2.x应用程序:(哟,这个怎么样?回复?(:tag)
@Codeglot,响应?
也将完美地满足您的需求。它与方法非常相似。包括?
但这个怎么样呢?响应(:tag)
@Codeglot,响应?
也将完美地满足您的需求。它与方法非常相似。包括?
但更短