Я попробовал это, и это работало:
String.Format("{0:d}", MyValue)
I believe that you have encountered a Rails bug. I tried the same thing on my box (2.3.4) and it gives me the same error which doesn't seem right at all. Additionally I also tried the work around of:
course = Course.first
course.observers << Student.create(:name => "Joe Student")
course.save
But this creates a membership with the observer field set to false!
The final ugly workaround I came up with was creating the Membership
record manually:
Membership.create!(:course => Course.first, :student => Student.first, :observer => true)
I've created a ticket for this and I'll be investigating further after breakfast.
EDIT: I have, as promised, investigated further and found if you change your :conditions
Hash to an Array such as:
:conditions => ["memberships.observer = ?", true]
It works as intended. I also have a github repository with example code and instructions to duplicate.