:through i problem

Rails 1.2.6
ruby 1.8.6

Hejka
Możecie mi podpowiedzieć o co chodzi ? Problem zdecydowanie związany jest z patametrem :through

class Slideshow < ActiveRecord::Base
has_many :photos :through => :slides
end

C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in gem_original_require': D:/Aptana_WRK/webnet/app/models/slideshow.rb:2: syntax error, unexpected ':', expecting kEND (SyntaxError) has_many :photos :through => :slides ^ from C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:inrequire’
from C:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/dependencies.rb:495:in require' from C:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/dependencies.rb:342:innew_constants_in’
from C:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/dependencies.rb:495:in require' from C:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/dependencies.rb:104:inrequire_or_load’
from C:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/dependencies.rb:60:in depend_on' from C:/ruby/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/dependencies.rb:442:inrequire_dependency’
from C:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.6/lib/active_record/fixtures.rb:486:in require_fixture_classes' ... 10 levels... from D:\Aptana_WRK\.metadata\.plugins\org.radrails.rails.core\run_tests.rb:2 from C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:ingem_original_require’
from C:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require’

przecinek

Mam podobny problem, podczas tworzenia modelu User napotkałem taki komunikat o błędzie, pracuję póki co w konsoli po uruchomieniu ruby script/console.

błąd:
SyntaxError C://…/models/user.rb:37: syntax error, unexpected kEND, expecting $end

from …kilka plików wskazujące C:// …activesuport
podobne co kolega “kropla”

nie da się skopiować z konsoli dlatego nie umieszczam reszty wyświetleń tutaj,

mój model User:
class User < ActiveRecord::Base

#Maksymalne i minimalne długości wszystkich pól
SCREEN_NAME_MIN_LENGTH = 4
SCREEN_NAME_MAX_LENGTH = 20
PASSWORD_MIN_LENGTH = 4
PASSWORD_MAX_LENGTH = 40
EMAIL_MAX_LENGTH = 50
SCREEN_NAME_RANGE = SCREEN_NAME_MIN_LENGTH…SCREEN_NAME_MAX_LENGTH
PASSWORD_RANG = PASSWORD_MIN_LENGTH…PASSWORD_MAX_LENGTH

#przetłumaczenie nazwy pól
HUMANIZED_ATTRIBUTES = {
:email => “Adres e-mail”,
:screen_name => “Pseudonim”,
:password => “Hasło”,
}

tłumaczenie nazwy pól

def self.human_attrbute_name(attr)
HUMANIZED_ATTRIBUTES[attr.to_sym] || super
end

validates_uniqueness_of :screen_name, :email, :message => “jest już zajęty.”
validates_length_of :screen_name, within => SCREEN_NAME_RANGE, :too_short => “jest zbyt krótki (minimum to #{SCREEN_NAME_MIN_LENGTH} znaki).”, :too_long => “jest zbyt długi (maksimum to #{SCREEN_NAME_MAX_LENGTH} znaków).”
validates_length_of :password, :within => PASSWORD_RANG, :too_short => “jest zbyt krótkie (minimum to #{PASSWORD_MIN_LENGTH} znaki).”, :too_long => “jest zbyt długie (maksimum to #{PASSWORD_MAX_LENGTH} znaków).”
validates_length_of :email, :maximum => EMAIL_MAX_LENGTH, :message => “jest zbyt długi.”
validates_presence_of :email, :message => “nie może być pusty.”

def validate
errors.add(:email, “musi być prawidłowy.”) unless email.include?("@")
if screen_name.include?(" ")
errors.add(:screen_name, “nie może zawierać spacji”)
end
end

end

i nie wiem gdzie tkwi problem, wszystko wydaje się ok, prosze o pomoc

Taka sama odpowiedz jak wyzej, przecinek tym razem do usuniecia w linii:

:password => “Hasło”,

przecinek tutaj jest nie istotny, może być i może go nie być, już to próbowałem błąd dalej taki sam jak był…

zmień “Hasło” na “Haslo” bez Ł jeśli zadziała to zmień kodowanie pliku na utf8 -plain

edit: nietylko “hasło” ale wszędzie wywal wszystkie polskie znaki

wogóle sprawdź kodowanie

usunąłem wszystkie polskie litery i dalej nic ten sam błąd…

używam kodowania utf-8

UTF8:

>> User.new SyntaxError: H:/RailsApps/onekick/app/models/user.rb:35: syntax error, unexpected kEND, expecting $end from h:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/dependencies.rb:380:in `load_without_new_constant_marking' from h:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/dependencies.rb:380:in `load_file' from h:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/dependencies.rb:521:in `new_constants_in' from h:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/dependencies.rb:379:in `load_file' from h:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/dependencies.rb:259:in `require_or_load' from h:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/dependencies.rb:425:in `load_missing_constant' from h:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/dependencies.rb:80:in `const_missing' from h:/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.3/lib/active_support/dependencies.rb:92:in `const_missing' from (irb):10
UTF8-PLAIN

>> User.new => #<User id: nil, screen_name: nil, password: nil, email: nil, created_at: nil, updated_at: nil>
UTF8-PLAIN -> bez BOM’a

działa, dzięki wielkie…

i najlepiej używać zawsze utf-8 bez Bom? jak to jest z tym bo przypomina mi się, że kiedyś też miałem z tym problem…

Czasem potrzebny jest BOM, ale nie pamiętam gdzie. Jednak w Rails tylko bez BOM’a. Może w PHP usuwałeś BOM jakimiś funkcjami.