Когда я выполняю метод Model.create, если я укажу значение для: id, он позже будет сведен к нулю. Пример:Rails: .create аннулирует пользовательское значение для: id
Model.create (
:id => 50,
:name => Joe,
:enabled => yes
)
Вместо того, что я должен сделать, это использовать .new и сохранить его в переменной класса, храню значение идентификатора через переменную класса, а затем, наконец, назвать сохранить:
m = Model.new (
:name => Joe,
:enabled => yes
)
m.id = 50
m.save
Я пытаюсь выполнить этот код в файле seeds.rb, и это НЕ очень сухой код. Как я могу сделать это лучше и добиться тех же результатов?
Почему вы должны сделать это? Это вне конвенции Rails, поэтому убедитесь, что она не будет СУХОЙ (Rails «наказывает» вас за то, что вы вышли за рамки соглашения). – YuriAlbuquerque
Это даже не вопрос о соглашениях Rails, это вопрос соглашений о реляционной базе данных. Если вы полагаетесь на первичные ключи, имеющие определенные значения в вашей логике ('do_something if user.id == 50'), вам нужно переосмыслить, что вы делаете. –