В рубине на рельсах, я использовал леску в два раза, как этотfind_by_sql в Rails для пользовательских проверок
rails g scaffold userpost user_field1:string user_field2:string
rails g scaffold adminpost admin_field1:string admin_field2:string
Я хочу сделать пользовательскую проверку Когда пользователи публикуют userpost.
Пользователи могут публиковать только пользовательский адрес. Admin может публиковать только adminpost. И пользователь может публиковать user_field1 так же, как admin_field1 и user_field2, как и admin_field2.
Я попробовал этот код
class Userpost < ActiveRecord::Base
validates :check_userpost
def check_userpost
admin_field2 = Adminpost.find_by_sql ("SELECT admin_field2 FROM adminposts WHERE admin_field1 = '#{self.user_field1}'")
if admin_field2 != '#{self.user_field2}'
errors.add(:user_field2, "not match")
end
end
end
Если у вас есть какие-либо идеи, пожалуйста, дайте мне советует.
Параметр '# {переменная}' синтаксис применяется только на ' "двойные кавычки"' 'не 'одного quotes'' , Может быть, стоит отметить. – javanut13
Я попытался это также определение функции check_userpost admin_field2 = Adminpost.find_by_sql ("SELECT admin_field2 FROM adminposts WHERE admin_field1 = # {self.user_field1}") если admin_field2! = "# {} Self.user_field2" errors.add (: user_field2, "not match") end end' не работает – Mitsunobuk