Ich habe versucht, eine book
zusammen mit dem Erstellen einer user
erstellen. So ist das Formular Book
in User
verschachtelt. Aber ich kann nicht durchgehen, weil ich diesen Fehler hatte:"param fehlt oder der Wert ist leer: user"
param fehlt oder der Wert ist leer
ich bei jeder Frage auf slack hatte einen Blick, wo die Menschen bekommen dieser Fehler.
Aber keiner passt zu meinem Fall.
Also, wenn Sie irgendeine Idee haben, zögern Sie nicht, zu helfen.
user.rb
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :books
has_many :covers, through: :books
has_many :commands
accepts_nested_attributes_for :books
end
book.rb
class Book < ApplicationRecord
has_one :cover
belongs_to :user, dependent: :destroy
end
registrations_controller
class RegistrationsController < Devise::RegistrationsController
def new
build_resource(sign_up_params)
self.resource.books = Book.new
respond_with self.resource
end
def create
super
end
private
def sign_up_params
params.require(resource_name).permit(:email, :password, :password_confirmation, :books_attributes[:title, :author_first_name, :author_last_name])
end
end
I 0.123.230 geprüftdie
devise/Anmeldungen/new
h2
| Sign up
= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f|
= devise_error_messages!
.field
= f.label :email
br
= f.email_field :email, autofocus: true
.field
= f.label :password
- if @minimum_password_length
em
| (
= @minimum_password_length
| characters minimum)
br
= f.password_field :password, autocomplete: "off"
.field
= f.label :password_confirmation
br
= f.password_field :password_confirmation, autocomplete: "off"
= f.fields_for :books do |p|
= p.text_field :title
= p.text_field :author_first_name
= p.text_field :author_last_name
.actions
= f.submit "Sign up"
= render "devise/shared/links"
EDIT
Routen
Rails.application.routes.draw do
devise_for :users, controllers: {registrations: 'registrations'}
root 'home#index'
end
richtig ist gleich
log
Started GET "https://stackoverflow.com/users/sign_up" for ::1 at 2017-03-10 08:59:00 +0100
Processing by RegistrationsController#new as HTML
Completed 400 Bad Request in 1ms (ActiveRecord: 0.0ms)
ActionController::ParameterMissing - param is missing or the value is empty: user:
actionpack (5.0.2) lib/action_controller/metal/strong_parameters.rb:309:in `require'
app/controllers/registrations_controller.rb:15:in `sign_up_params'
app/controllers/registrations_controller.rb:3:in `new'
actionpack (5.0.2) lib/action_controller/metal/basic_implicit_render.rb:4:in `send_action'
actionpack (5.0.2) lib/abstract_controller/base.rb:188:in `process_action'
actionpack (5.0.2) lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack (5.0.2) lib/abstract_controller/callbacks.rb:20:in `block in process_action'
activesupport (5.0.2) lib/active_support/callbacks.rb:126:in `call'
activesupport (5.0.2) lib/active_support/callbacks.rb:506:in `block (2 levels) in compile'
activesupport (5.0.2) lib/active_support/callbacks.rb:455:in `call'
activesupport (5.0.2) lib/active_support/callbacks.rb:101:in `__run_callbacks__'
activesupport (5.0.2) lib/active_support/callbacks.rb:750:in `_run_process_action_callbacks'
activesupport (5.0.2) lib/active_support/callbacks.rb:90:in `run_callbacks'
actionpack (5.0.2) lib/abstract_controller/callbacks.rb:19:in `process_action'
actionpack (5.0.2) lib/action_controller/metal/rescue.rb:20:in `process_action'
actionpack (5.0.2) lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
activesupport (5.0.2) lib/active_support/notifications.rb:164:in `block in instrument'
activesupport (5.0.2) lib/active_support/notifications/instrumenter.rb:21:in `instrument'
activesupport (5.0.2) lib/active_support/notifications.rb:164:in `instrument'
actionpack (5.0.2) lib/action_controller/metal/instrumentation.rb:30:in `process_action'
actionpack (5.0.2) lib/action_controller/metal/params_wrapper.rb:248:in `process_action'
activerecord (5.0.2) lib/active_record/railties/controller_runtime.rb:18:in `process_action'
actionpack (5.0.2) lib/abstract_controller/base.rb:126:in `process'
actionview (5.0.2) lib/action_view/rendering.rb:30:in `process'
actionpack (5.0.2) lib/action_controller/metal.rb:190:in `dispatch'
actionpack (5.0.2) lib/action_controller/metal.rb:262:in `dispatch'
actionpack (5.0.2) lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
actionpack (5.0.2) lib/action_dispatch/routing/route_set.rb:32:in `serve'
actionpack (5.0.2) lib/action_dispatch/routing/mapper.rb:16:in `block in <class:Constraints>'
actionpack (5.0.2) lib/action_dispatch/routing/mapper.rb:46:in `serve'
actionpack (5.0.2) lib/action_dispatch/journey/router.rb:39:in `block in serve'
actionpack (5.0.2) lib/action_dispatch/journey/router.rb:26:in `serve'
actionpack (5.0.2) lib/action_dispatch/routing/route_set.rb:725:in `call'
warden (1.2.7) lib/warden/manager.rb:36:in `block in call'
warden (1.2.7) lib/warden/manager.rb:35:in `call'
rack (2.0.1) lib/rack/etag.rb:25:in `call'
rack (2.0.1) lib/rack/conditional_get.rb:25:in `call'
rack (2.0.1) lib/rack/head.rb:12:in `call'
rack (2.0.1) lib/rack/session/abstract/id.rb:222:in `context'
rack (2.0.1) lib/rack/session/abstract/id.rb:216:in `call'
actionpack (5.0.2) lib/action_dispatch/middleware/cookies.rb:613:in `call'
activerecord (5.0.2) lib/active_record/migration.rb:553:in `call'
actionpack (5.0.2) lib/action_dispatch/middleware/callbacks.rb:38:in `block in call'
activesupport (5.0.2) lib/active_support/callbacks.rb:97:in `__run_callbacks__'
activesupport (5.0.2) lib/active_support/callbacks.rb:750:in `_run_call_callbacks'
activesupport (5.0.2) lib/active_support/callbacks.rb:90:in `run_callbacks'
actionpack (5.0.2) lib/action_dispatch/middleware/callbacks.rb:36:in `call'
actionpack (5.0.2) lib/action_dispatch/middleware/executor.rb:12:in `call'
actionpack (5.0.2) lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
better_errors (2.1.1) lib/better_errors/middleware.rb:84:in `protected_app_call'
better_errors (2.1.1) lib/better_errors/middleware.rb:79:in `better_errors_call'
better_errors (2.1.1) lib/better_errors/middleware.rb:57:in `call'
actionpack (5.0.2) lib/action_dispatch/middleware/debug_exceptions.rb:49:in `call'
web-console (3.4.0) lib/web_console/middleware.rb:135:in `call_app'
web-console (3.4.0) lib/web_console/middleware.rb:28:in `block in call'
web-console (3.4.0) lib/web_console/middleware.rb:18:in `call'
actionpack (5.0.2) lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
railties (5.0.2) lib/rails/rack/logger.rb:36:in `call_app'
railties (5.0.2) lib/rails/rack/logger.rb:24:in `block in call'
activesupport (5.0.2) lib/active_support/tagged_logging.rb:69:in `block in tagged'
activesupport (5.0.2) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (5.0.2) lib/active_support/tagged_logging.rb:69:in `tagged'
railties (5.0.2) lib/rails/rack/logger.rb:24:in `call'
sprockets-rails (3.2.0) lib/sprockets/rails/quiet_assets.rb:13:in `call'
actionpack (5.0.2) lib/action_dispatch/middleware/request_id.rb:24:in `call'
rack (2.0.1) lib/rack/method_override.rb:22:in `call'
rack (2.0.1) lib/rack/runtime.rb:22:in `call'
activesupport (5.0.2) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
actionpack (5.0.2) lib/action_dispatch/middleware/executor.rb:12:in `call'
actionpack (5.0.2) lib/action_dispatch/middleware/static.rb:136:in `call'
rack (2.0.1) lib/rack/sendfile.rb:111:in `call'
railties (5.0.2) lib/rails/engine.rb:522:in `call'
puma (3.7.1) lib/puma/configuration.rb:232:in `call'
puma (3.7.1) lib/puma/server.rb:578:in `handle_request'
puma (3.7.1) lib/puma/server.rb:415:in `process_client'
puma (3.7.1) lib/puma/server.rb:275:in `block in run'
puma (3.7.1) lib/puma/thread_pool.rb:120:in `block in spawn_thread'
Started POST "/__better_errors/8c394ae550fda307/variables" for ::1 at 2017-03-10 08:59:00 +0100
Try 'self.resource.books = Book.new' und' self.resource.books.build' zu ändern und das Protokoll (Eingang params) für eine Show create aciton –
Ich versuche das, aber es gibt nichts Interessantes im Log: 'ActionController :: ParameterMissing - Parameter fehlt oder der Wert ist leer: user: actionpack (5.0.2) lib/action_controller/metal/strong_parameters.rb: 309: in 'require' app/controllers/registrations_controller.rb: 15: in 'sign_up_params' app/controllers/registrations_controller.rb: 3: in 'neu' actionpack (5.0.2) lib/action_controller/metal/basic_implicit_render.rb: 4: in 'send_action '.....' – Orsay
Versuchen Sie, ': books_attributes' zu': book_attributes' in Ihrer 'params.permit' zu ändern. Wenn dies nicht hilft, zeigen Sie bitte den Teil aus Ihrem Serverprotokoll an, in dem die Anforderungsparameter protokolliert werden. – Raffael