我的模型course.rb
pre_courses
是一个数组。
class Course < ActiveRecord::Base
serialize :pre_courses, Array
end
现在我想检查Activerecord或原始SQL(我正在使用MySQL)的任何课程是否存在course
pre_course
,例如Course.where("pre_courses INCLUDEs self.id
“。
有没有办法做到这一点?
答案 0 :(得分:2)
序列化数组只是数据库中的一个字符串,因此请尝试使用LIKE
,例如:
Course.where("pre_courses LIKE ?", "% #{self.id}\n%")
请注意,序列化数组在每个项之前添加一个空格,之后添加一个新行,因此在插值字符串之前添加了空格,最后添加了\n
。
答案 1 :(得分:1)
听起来pre_course
实际上是常规course
,course
可以有很多pre_courses
而pre_course
可以属于许多courses
has_many through
}}。自我引用CoursePreCourse
关系是可能的,并且可以使您更灵活地处理数据,而不是将其序列化为数组。
您需要一个联接模式我会致电course_id
。它将包含pre_course_id
和pre_course_id
列。 courses
将成为class CreateCoursePreCourses < ActiveRecord::Migration[5.1]
def change
create_table :course_pre_courses do |t|
t.references :course, foreign_key: true
t.references :pre_course, foreign_key: { to_table: :courses }
t.timestamps
end
end
end
class CoursePreCourse < ApplicationRecord
belongs_to :course
belongs_to :pre_course, class_name: 'Course'
end
class Course < ApplicationRecord
# A straight-forward has_many :through association for a course that has_many :pre_courses
has_many :course_pre_courses
has_many :pre_courses, through: :course_pre_courses
# A little coercion is necessary to set up the association as a pre_course that has_many :courses
has_many :pre_course_courses, class_name: 'CoursePreCourse', foreign_key: :pre_course_id
has_many :courses, through: :pre_course_courses
end
表中记录的外键。
courses
现在,您可以使用pre_courses
检索course
course.pre_courses
course
pre_course
。如果您想查看courses
是pre_course.courses
其他course
course
的{{1}}。同样,您可以使用pre_courses
或course.pre_courses << pre_course
向pre_course.courses << course
public boolean showingFirst = true;
if (showingFirst) {
//code here for set needed image on first click
showingFirst = false;
} else {
//code here for set needed image on Second click
showingFirst = true;
}
class UserDetails{
var name : String
var email : String
var mobile: String
var password : String
var confirmPassword : String
init(name:String, email:String, mobile:String, password:String, confirmPassword: String) {
self.name = name
self.email = email
self.mobile = mobile
self.password = password
self.confirmPassword = confirmPassword
}
init(){
self.email = ""
self.password = ""
self.mobile = ""
self.name = ""
self.confirmPassword = ""
}
}
class Data: NSObject {
static let sharedInstance = Data()
var stored : userData!
func Get(data : userData)
{
stored = data
}
var details = [UserDetails]()
let dataStore = UserDetails(name: name!, email: email!, mobile: mobileNumber!, password: password!, confirmPassword: confirmPassword!)
details.append(dataStore)
Data.sharedInstance.Get(data: details)
添加android:background="@null"
。
你是否曾经多次说过一句话就失去了意义?