2016-09-21 3 views
1

ハロー人々は私がユーザーのための工夫認証で、ここでいくつかの課題があります。このDevise認証の課題を解決するにはどうすればよいですか?

私は自分のアプリケーション内の色とsub_colorと呼ばれる2つのモデルがあります。 sub_color belongs_toの色とcolor has_many sub_colors.Iはすでにデータベースに適切なデータを設定しています。

チャレンジです。私は、コレクションオブジェクトとして登録しているときに、ユーザがdevise form_forでこれらを選択できるようにして、特定のユーザを識別するためにsub_colorのIDを使用するようにします(たとえば、青色を帯びた)。どうすればいいですか?

これは私が試してみましたが、それは動作していないものです。

%= simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %> 
          <%= f.error_notification %> 

          <div class="form-inputs"> 
          <%= f.input :email, required: true, autofocus: true %> 
          <%= f.input :user_name, required: true %> 
          <%= f.input :password, required: true, hint: ("#  {@minimum_password_length} characters minimum" if @minimum_password_length) %> 
          <%= f.input :password_confirmation, required: true %> 
          <%= f.input :first_name, required: true %> 

    <%= f.label :color_id, "Color" %> <br/> 
    <%= f.collection_select :color_id, Color.order(:name), :id, :name, include_blank: true%> 

    <%= f.label :sub_color_id, "Sub Color" %> <br/> 
    <%= f.grouped_collection_select :sub_color_id, Color.order(:name), :sub_color, :name, :id, :name, include_blank: true%> 

    <div class="form-actions"> 
         <%= f.button :submit, "Sign up" %> 
         </div> 

model for users: 
belongs_to :sub_color 
has_one :color, through: :sub_color 

devise....... 

end 


model for sub_color 

has_many :users 
belongs_to :color 

end 


model for color 

has_many :sub_color 

end  

これは、私は、Webブラウザ

まず
NoMethodError in Devise::Registrations#new 
[undefined method `color_id' for #<User:0xbacc720>] 
+1

ユーザモデルに 'color_id'と' sub_color_id'がありますか? –

+0

いいえ私はそれを持っていませんでしたが、彼らは現在存在しています..ありがとうございますが、私はまだモデルに追加するためにRSBの答えを使っています。 – Dlaw

+0

あなたのユーザー、カラー、サブカラーモデルとそれらのフィールドで更新質問をすることができます –

答えて

1

に表示されるエラーである、あなたはにcolor_idsub_color_idを追加する必要がありますユーザーテーブル。

次に、user.rb belongs_to :sub_colorとsub_color.rb has_many :usersに関連付けを定義します。 color、user.rb belongs_to :color、color.rb has_many :usersと同じです。

希望に役立ちます!

+0

私は上記のすべてのことをやったことがありますが、まだ方法のエラーが表示されていません。 – Dlaw

+0

完全なエラーを貼り付けることができます。 Cを表示考案::登録#新しい で – RSB

+0

NoMethodError:/ユーザー/...../ new.html.erbライン#19が提起: のRails: 未定義のメソッドが '#<0x851f928ユーザー>は「COLOR_ID。ルート:C:/ Users/c/Documents/Ojojas アプリケーショントレース|フレームワークトレース|完全なトレース activemodel(4.2.6)lib/active_model/attribute_methods.rb:433: 'method_missing ' アクションビュー(4.2.6)lib/action_view/helpers/tags/base.rb:28:' public_send' アクションビュー(4.2.6)lib/action_view/helpers/tags/collection_select.rb:16: ''ブロックインレンダー 'の中のlib/action_view/helpers/tags/base.rb:28: 'value'の中の アクションビュー(4.2.6) – Dlaw

関連する問題