Content と Page の 2 つのモデルがあります
class Content < ActiveRecord::Base
attr_accessible :large_description, :short_description
belongs_to :contentable , :polymorphic => true
end
class Page < ActiveRecord::Base
extend FriendlyId
friendly_id :title, use: [:slugged, :history]
attr_accessible :active, :menu, :slug, :title, :contents
validates :title, presence: true
has_many :contents, as: :contentable
end
これは、コンテンツを含む新しいページを作成するための私の簡単なフォームです
<%= form_for([:admin,@page], :html => {:class => "nice custom"}) do |f| %>
<div class="formRow">
<%= f.label :title, "Title"%>
<%= f.text_field :title, :class => 'input-text'%>
</div>
<%= f.fields_for :contents do |content_form| %>
<div class="formRow">
<%= content_form.label :short_description, "Short Description"%>
<%= content_form.text_area :short_description, :class => 'tinymce expand'%>
</div>
<div class="formRow">
<%= content_form.label :large_description, "Large Description"%>
<%= content_form.text_area :large_description, :class => 'tinymce expand'%>
</div>
<% end %>
<div class="formRow">
<%= f.submit "Create", :class => 'button small nice blue'%>
</div>
<% end %>
そして最後に、これは私のページコントローラーです
class Admin::PagesController < ApplicationController
layout 'admin'
def index
@pages = Page.order("created_at")
end
def new
@page = Page.new
end
def create
@page = Page.new(params[:page])
if @page.save
redirect_to page_url
else
render :new
end
end
def show
@page = Page.find(params[:id])
end
def destroy
@page = Page.find(params[:id])
@page.destroy
redirect_to page_url
end
end
名前空間管理者を使用しました。問題は、フォームを送信したときにこのエラーが表示され、なぜ不一致があるのか理解できません。
ActiveRecord::AssociationTypeMismatch in Admin::PagesController#create Content(#70150608194420) が予期され、取得された配列 (#70150590276780)
activerecord (3.2.8) lib/active_record/associations/association.rb:204:
raise_on_type_mismatch' activerecord (3.2.8) lib/active_record/associations/collection_association.rb:308:in
in replace ' activerecord (3.2.8) lib/active_record/associations/collection_association.rb:308: ineach' activerecord (3.2.8) lib/active_record/associations/collection_association.rb:308:in
replace' activerecord (3.2.8) lib/active_record/associations/collection_association.rb:41:writer' activerecord (3.2.8) lib/active_record/associations/builder/association.rb:51:in
define_writers の activerecord 内のブロック (3.2.8) lib/active_record/attribute_assignment.rb:94:block in assign_attributes' activerecord (3.2.8) lib/active_record/attribute_assignment.rb:93:in
それぞれの activerecord (3.2.8) 内 lib/active_record/attribute_assignment.rb: 93:assign_attributes' activerecord (3.2.8) lib/active_record/base.rb:498:in
initialize' app/controllers/admin/pages_controller.rb:13:innew' app/controllers/admin/pages_controller.rb:13:in
create' actionpack (3.2.8) lib/action_controller/metal/implicit_render.rb:4:insend_action' actionpack (3.2.8) lib/abstract_controller/base.rb:167:in
process_action' actionpack (3.2.8) lib/action_controller /metal/rendering.rb:10:inprocess_action' actionpack (3.2.8) lib/abstract_controller/callbacks.rb:18:in
block in process_action' activesupport (3.2.8) lib/active_support/callbacks.rb:414:in_run__3558390125630086563__process_action__2004224720818030891__callbacks' activesupport (3.2.8) lib/active_support/callbacks.rb:405:in
__run_callback' activesupport (3.2.8) lib/active_support/callbacks.rb:385:in_run_process_action_callbacks' activesupport (3.2.8) lib/active_support/callbacks.rb:81:in
run_callbacks' actionpack (3.2.8) lib/ abstract_controller/callbacks.rb:17:inprocess_action' actionpack (3.2.8) lib/action_controller/metal/rescue.rb:29:in
process_action' actionpack (3.2.8) lib/action_controller/metal/instrumentation.rb:30:inblock in process_action' activesupport (3.2.8) lib/active_support/notifications.rb:123:in
ブロック in instrument' activesupport (3.2.8) lib/active_support/notifications/instrumenter.rb: 20:instrument' activesupport (3.2.8) lib/active_support/notifications.rb:123:in
Instrument' アクションパック (3.2.8) lib/action_controller/metal/instrumentation.rb:29:inprocess_action' actionpack (3.2.8) lib/action_controller/metal/params_wrapper.rb:207:in
process_action' activerecord (3.2.8) lib/active_record/railties/controller_runtime.rb:18:inprocess_action' actionpack (3.2.8) lib/abstract_controller/base.rb:121:in
process' actionpack (3.2 .8) lib/abstract_controller/rendering.rb:45:inprocess' actionpack (3.2.8) lib/action_controller/metal.rb:203:in
ディスパッチ' アクションパック (3.2.8) lib/action_controller/metal/rack_delegation.rb:14:dispatch' actionpack (3.2.8) lib/action_controller/metal.rb:246:in
アクションのブロック内' アクションパック (3.2.8) lib/action_dispatch/routing/route_set.rb:73:call' actionpack (3.2.8) lib/action_dispatch/routing/route_set.rb:73:in
ディスパッチ内のアクションパック (3.2. 8) lib/action_dispatch/routing/route_set.rb:36:call' journey (1.0.4) lib/journey/router.rb:68:in
in call ' ジャーニー (1.0.4) lib/journey/router.rb:56: ineach' journey (1.0.4) lib/journey/router.rb:56:in
call ' actionpack (3.2.8) lib/action_dispatch/routing/ route_set.rb:600:incall' actionpack (3.2.8) lib/action_dispatch/middleware/best_standards_support.rb:17:in
call' Rack (1.4.1) lib/rack/etag.rb:23:incall' rack (1.4.1) lib/rack/conditionalget.rb:35:in
call' actionpack (3.2.8) lib/action_dispatch/middleware/head.rb:14:incall' actionpack (3.2.8) lib/action_dispatch/middleware/params_parser.rb:21:in
call' actionpack (3.2.8) lib/action_dispatch/middleware/flash.rb:242:incall' rack (1.4.1) lib/rack/session/abstract/id.rb:205:in
context' Rack (1.4.1) lib/rack/session/abstract/id.rb:200:incall' actionpack (3.2.8) lib/action_dispatch/middleware/cookies.rb:339:in
call' activerecord (3.2.8) lib /active_record/query_cache.rb:64:incall' activerecord (3.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:473:in
call' actionpack (3.2.8) lib/action_dispatch/middleware/callbacks.rb:28:inblock in call' activesupport (3.2.8) lib/active_support/callbacks.rb:405:in
run _3479256987463636693_ call _4454778504255292268__callbacks' activesupport (3.2.8) lib/active_support/callbacks.rb:405:in__run_callback' activesupport (3.2.8) lib/active_support/callbacks.rb:385:in
_run_call_callbacks' activesupport (3.2.8) ) lib/active_support/callbacks.rb:81:inrun_callbacks' actionpack (3.2.8) lib/action_dispatch/middleware/callbacks.rb:27:in
call' actionpack (3.2.8) lib/action_dispatch/middleware/reloader.rb:65:incall' actionpack (3.2.8) lib/action_dispatch/middleware/remote_ip.rb:31:in
call' actionpack (3.2.8) lib/action_dispatch/middleware/debug_exceptions.rb :16:incall' actionpack (3.2.8) lib/action_dispatch/middleware/show_exceptions.rb:56:in
call' railties (3.2.8) lib/rails/rack/logger.rb:26:incall_app' railties (3.2.8) lib/rails/rack/logger.rb:16:in
call' actionpack (3.2.8) lib/action_dispatch/middleware/request_id.rb:22:incall' rack (1.4.1) lib/rack/methodoverride.rb:21:in
call' rack ( 1.4.1) lib/rack/runtime.rb:17:incall' activesupport (3.2.8) lib/active_support/cache/strategy/local_cache.rb:72:in
call' ラック (1.4.1) lib/rack/lock.rb:15:incall' actionpack (3.2.8) lib/action_dispatch/middleware/static.rb:62:in
call' railties (3.2.8) lib/rails/engine.rb:479:incall' railties (3.2.8) lib/rails/application.rb:223:in
call' rack (1.4.1) lib/rack/content_length.rb:14:incall' railties (3.2.8) lib/rails/rack/log_tailer.rb:17:in
call' rack (1.4.1) lib/rack/ handler/webrick.rb:59:inservice' /Users/ogonbat/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/httpserver.rb:138:in
service' /Users/ogonbat/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/httpserver.rb:94:inrun' /Users/ogonbat/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/webrick/server.rb:191:in
block in start_thread'
これはリクエストパラメータです
{"utf8"=>"✓", "authenticity_token"=>"g44p+IPxvdm2ouGAE2u2dV/cCKK8uF6G3XLL4z26zrI=", "page"=>{"title"=>"zfdzfdsf", "contents"=>{"short_description"=> "
sdfdsf
", "大きな説明"=>"dsfdsf
"}}, "コミット"=>"作成"}
あなたの助けを前もって感謝します