2013-12-11 2 views
-1

У меня есть модели, как это:отношения в Rails

app/models/user.rb

class User < ActiveRecord::Base 
    has_many :questions 
    has_many :answers, :through => :questions 
end 

app/models/question.rb

class Question < ActiveRecord::Base 
has_many :answers 
has_many :users 
end 

app/models/answer.rb

class Answer < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :question 
attr_accessible :answer, :user_id, :question_id 
end 

И регистрация е orm:

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %> 
       <div>Sign up</div> 
       <div> 

        <div><p><%= f.label :email, "Email" %><%= f.email_field :email, :autofocus => true %></div> 
        <div><p><%= f.label :password, "Password" %></p><%= f.password_field :password %></div> 
        <div><p><%= f.label :password_confirmation , "Password" %></p><%= f.password_field :password_confirmation %></div> 

       </div> 
       <div> 
        <%= f.submit "Sign up" %></a></div> 
       </div> 
      <% end%> 

Теперь я хочу отобразить поле вопросов и ответов на это.

И представленный ответ должен храниться в таблице «ответы» вместе с user_id и question_id.

Как добавить поле ответа в форму?

ответ

0

Вы получаете вниз проголосовали, потому что так действительно для конкретных программ запросов & вопросы (больше кода, тем лучше), но вот некоторые идеи для вас:

По Rails' ActiveRecord associations, вы бы лучше с помощью ассоциация has_many :through, эффективно создающая модель объединения; например:

#app/models/question.rb 
class Question < ActiveRecord::Base 
    has_many :answers 
    has_many :users, :through => :answers 
end 

#app/models/answer.rb 
class Answer < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :question 
end 

#app/models/user.rb 
class User < ActiveRecord::Base 
    has_many :answers 
    has_many :questions, :through => :answers 
end