1

この質問に関連するモデル:user、friend、interest、person_interest。Person_interestはpolymoprhicであり、ユーザーまたは友人のいずれかに属するインタレストを保存できます。

インタレストには、約 30の利益。ユーザーが登録すると、自分の興味を選択するように求められます。次に、フォームの下部に友達の名前を入力して、その人の興味を選択します。

でこれを達成しようとしています<%= friend_f.input :interests, :as => :check_boxes, :label => false %>

しかし、次のエラーが発生します。

NoMethodError in User_steps#show

Showing /Users/nelsonkeating/Desktop/ReminDeal/app/views/user_steps/show.html.erb where line #30 raised:

undefined method `to_i' for []:ActiveRecord::Relation
Extracted source (around line #30):

27:         :end_year => Date.today.year - 12,
28:         :order => [:month, :day, :year ] %>
29:       <%= friend_f.input :gender, :collection => ['male','female'] %>
30:       <%= friend_f.input :interests, :as => :check_boxes, :label => false %>
31:     <%end%>
32:   
33: 
Rails.root: /Users/nelsonkeating/Desktop/ReminDeal

Application Trace | Framework Trace | Full Trace
app/views/user_steps/show.html.erb:30:in `block (2 levels) in _app_views_user_steps_show_html_erb__1202886937753978667_70281885932700'
app/views/user_steps/show.html.erb:23:in `block in _app_views_user_steps_show_html_erb__1202886937753978667_70281885932700'
app/views/user_steps/show.html.erb:1:in `_app_views_user_steps_show_html_erb__1202886937753978667_70281885932700'
Request

Parameters:

{"id"=>"show"}

そして、これがフォームです。

<%= simple_form_for @user do |f| %>

  <%= f.input :name %>
  <%= f.input :city %>
  <%= f.input :address, :live => true  %>
  <%= f.input :zipcode %>
  <%= f.input :date_of_birth, :as => :date, :start_year => 1900,
    :end_year => Date.today.year - 12,
    :order => [ :day, :month, :year] %>
  <%= f.input :gender, :collection => [:male, :female] %>


    <h4>Select your top 3 interests..</h4>
      <%= f.association :interests, :as => :check_boxes, :label => false %>

    <h4>What holidays do you celebrate?</h4>
      <%= f.association :holidays, :as => :check_boxes, :label => false %> 



<h4>Add up to 10 friends birthdays that you would like to remember..</h4>
    <%= f.simple_fields_for :friends do |friend_f| %>

      <%= friend_f.input :name %>
      <%= friend_f.input :dob, :label => :Birthday, :as => :date, :start_year => Date.today.year - 90,
        :end_year => Date.today.year - 12,
        :order => [:month, :day, :year ] %>
      <%= friend_f.input :gender, :collection => ['male','female'] %>
      <%= friend_f.input :interests, :as => :check_boxes, :label => false %>
     <%end%>


 <%= f.button :submit, :class => 'btn btn-success' %>
      <%end%>

Gitリポジトリはここにあります:https ://github.com/nelsonkeating/ReminDeal

4

2 に答える 2

6

避ける理由はありますfriend_f.associationか?

<%= friend_f.association :interests, :as => :check_boxes, :label => false %>

私のために働きます。または、kasperのコードでに変更:interestsしても機能するはずです。:interest_ids

<%= friend_f.input :interest_ids, :as => :check_boxes, :label => false, :collection => Interest.all %>
于 2012-05-25T07:48:21.413 に答える
0

キーを使ってコードを書いてみてください<%= friend_f.input :interests, :as => :check_boxes, :label => false %>:collection例えば:

<%= friend_f.input :interests, :as => :check_boxes, :label => false, :collection => Interest.all %>
于 2012-05-19T21:24:02.517 に答える