2016-07-08 13 views
-1

Ich habe mehrere Fragen zum gleichen Thema gefunden, aber alle haben Probleme mit der Interpunktion (ein Komma wurde verpasst oder hinzugefügt). In meinem Fall habe ich die folgenden Fehler, wennRails: Unerwarteter tSYMBEG-Fehler

SyntaxError: /home//workspace//app/models/user.rb:27: syntax error, unexpected tSYMBEG, expecting keyword_do or '{' or '('
has_many :roles, through :positions

Benutzermodell Migration:

class User < ActiveRecord::Base 
    has_many :positions 
    has_many :roles, through :positions 
end 

Das Vorbild:

class Role < ActiveRecord::Base 
    has_many :positions 
    has_many :users, through :positions 
end 

Das Positionsmodell:

class Position < ActiveRecord::Base 
    belongs_to :role 
    belongs_to :user 
end 

Irgendeine Idee, was könnte das Problem sein? Vielen Dank!

Antwort

4

through soll ein Symbol hier sein:

has_many :roles, through: :positions 

und hier:

has_many :users, through: :positions 

Es ist ein Hash-Schlüssel, der zu has_many Methode übergeben wird, nicht ein separates Verfahren.

Documentation

+1

Mein schlechter, danke! Wird es in 8 Minuten als akzeptiert angesehen. –

+0

Danke! Ich hatte ein ähnliches Problem. Ich bin froh, dass du antworten konntest, bevor das aus irgendeinem Grund geschlossen wurde .. – Adam12344