я создал новый Rails 4.2 проекта, настроить Sequel Gem согласно документации и побежал следующую команду, чтобы создать свой первый раздел проекта:Rails 4.2 Sequel Модель - form_for на новом не работает, как ожидалось
rails generate scaffold Author nom_de_plume:string real_name:string email_address:string code_of_conduct_date:datetime created_at:datetime updated_at:datetime --orm=sequel
rake db:migrate
на основе чтения на Stackoverflow и некоторые ссылки Google, моя модель скелет выглядит следующим образом:
class Author < Sequel::Model
# ---
extend ActiveModel::Naming
include ActiveModel::Conversion
def persisted?
true
end
# ---
plugin :validation_helpers
plugin :after_initialize
# ---
def validate
super
validates_presence [:nom_de_plume, :real_name, :email_address, :code_of_conduct_date]
validates_unique([:nom_de_plume, :email_address]) end # def validate
# ---
def after_initialize
super
end # def after_initialize
end # class Author < Sequel::Model
контроллер запасов/неизмененной до сих пор. Когда я иду на http://localhost:3000/authors/, все работает так, как ожидалось.
Однако, когда я нажимаю http://localhost:3000/authors/new «Новый Автор» ссылку, я получаю следующее сообщение об ошибке:
Showing /project/app/views/authors/_form.html.erb where line #1 raised:
No route matches {:action=>"show", :controller=>"authors", :id=>nil} missing required keys: [:id]
Extracted source (around line #1):
1 <%= form_for(@author) do |f| %>
2
3 <% if @author.errors.any? %>
4 <div id="error_explanation">
5 <h2><%= pluralize(@author.errors.count, "error") %> prohibited this author from being saved:</h2>
6
Очевидно, что это сломанное поведение; «show» не следует ссылаться на «новый» запрос.
Я создал новый проект, сделал не использовать сиквел рельсы камень & связанный конфигурации (с использованием по умолчанию ActiveRecord), и точно такой же код работает, как ожидалось, без ошибок.
Я провел пару часов, выполняя поиск, и не могу найти решение для этого. Я уничтожил проект и перезапустил его, и он может последовательно воспроизводить описанное поведение.
Я знаю, что могу просто отказаться продолжение-gem и вернуться к AR, но я бы действительно не хотел этого делать.
Буду признателен за правильное решение этой проблемы. Заранее спасибо.
Это сработало для меня. Благодарю. – RajeshM