I have a migration file create_subject (code of which is below), a Subject class contains scopes using lambda syntax. When I call Subject.visible, I get syntax errors.
class CreateSubjects < ActiveRecord::Migration[5.0]
def up
create_table :subjects do |t|
t.string "name"
t.integer "position"
t.boolean "visible", :default=>false
t.timestamps
end
end
def down
drop_table :subjects
end
end
Console error log
irb(main):003:0> Subject.visible
SyntaxError: C:/Users/SS/Sites/simple_cms/app/models/subject.rb:3: syntax error, unexpected =>, expecting ')'
scope :visible, -> { where (:visible => true) }
^
C:/Users/SS/Sites/simple_cms/app/models/subject.rb:4: syntax error, unexpected =>, expecting ')'
scope :invisible, -> { where (:visible => false) }
^
C:/Users/SS/Sites/simple_cms/app/models/subject.rb:7: syntax error, unexpected '|'
scope :search, -> {|query| where (["name LIKE ?", "%#{query}%"]) }
^
C:/Users/SS/Sites/simple_cms/app/models/subject.rb:7: syntax error, unexpected ( arg, expecting keyword_do or '{' or '('
scope :search, -> {|query| where (["name LIKE ?", "%#{query}%"]) }