0

ルビーは初めてで、問題が発生しました

= simple_form_for @user do |f|

  .form-inputs
    = f.input :name
    = f.input :email
    = f.input :group_id, collection: Group.all.collect {|c| [c.name, c.id]}
  .form-actions
    = f.button :submit

エラーメッセージを表示する行は次のとおりです。

= f.input :group, collection: Group.all.collect {|c| [c.name, c.id]}

と同じこと

= f.input :group, collection: @groups

ユーザー:

class User < ActiveRecord::Base
  attr_accessible :email, :name, :group
  belongs_to :group

グループ:

class Group < ActiveRecord::Base
  attr_accessible :description, :name
  has_many :users

外部キーとこの移行を作成した宝石「移民」も使用していました。

class AddKeys < ActiveRecord::Migration
  def change
    add_foreign_key "users", "groups", :name => "users_group_id_fk"
  end
end

コレクションとフォームビルダーに関する警告をここで見ました。私が使うとき

= f.input :group_id, collection: @groups

ページをロードする前でもエラーメッセージが表示されます(フォームを送信した後ではありません)

undefined method `group_id'

助けはありますか?

4

2 に答える 2

1

Simple Formのドキュメントによると、f.input :groupではなくを使用する必要がありますf.input :group_id。美しさは、コレクションを渡す必要がないことです。自動的に行われます。

f. input :group

これにより、グループがリストされた選択入力がレンダリングされます。

于 2013-02-20T19:45:45.110 に答える
0

モデルをグループからXGroupまたはグループ以外のものに変更します。ActiveRecordのグループと競合していると思います

于 2013-02-20T19:40:52.770 に答える