3

私は、mongoid と simple_form を混在させることでいくつかの問題が発生することを期待しています (私が思うに、他のフォームビルダーでも同じ問題が実際にあります)。私は関係のある小さなフォームを持っています。

f.input :author, collection: User.all, as: :select

作成者を選択せず​​にフォームを送信すると、次のような例外が表示されます

NoMethodError in ExamplesController#update
undefined method `id' for "":String

とても悲しい:(私が見るように-simple_formは ""(空の文字列)を送信しますが、コントローラーにはnilではありません。もちろん-フォームビルダーから各パラメーターを検証できますが、それが良い解決策であるかどうかはわかりません。お勧めできますか?なにか?

UPD (モデル構造):

user.rb

class User
  include Mongoid::Document
  include Mongoid::Timestamps

  has_many :examples, :inverse_of => :author
  has_many :examples, :inverse_of => :responsible_person
end

たとえば .rb

class Example
  include Mongoid::Document
  include Mongoid::Timestamps
  include Mongoid::MultiParameterAttributes

  field :title, type: String
  field :description, type: String

  belongs_to :author, :class_name => "User"
  belongs_to :responsible_person, :class_name => "User"

  validates_presence_of :title, :description, :author

  attr_accessible :title, :description, :author, :responsible_person

end
4

2 に答える 2

4

この問題は、フォームで author_id と Responsible_person_id を直接使用して解決しました。

= f.input :author_id, collection: User.all, as: :select
= f.input :responsible_person_id, collection: User.all, as: :select 

それ以外の

= f.input :author, collection: User.all, as: :select
= f.input :responsible_person, collection: User.all, as: :select
于 2012-09-25T17:52:04.027 に答える
0

これを試して

<%= f.association :author %>
于 2012-09-25T12:22:31.967 に答える