我正在尝试遍历两个单独的列'值得的数据,使用每个循环。我想在页面上显示问题,然后是用户的电子邮件和update_last。我是一个新手,我不知道如何同时从单独的数据库中的单独列中绘制。这是我的代码:
<ul> <% @questions.each do |question| %> <hr> <li><%= **question**.title %></li> <li><%= **question**.user_id %></li> <li><%= **users**.email %></li> <% end %> </ul>
任何帮助都会很棒。我刚刚开始学习RoR并且有很多信息!!
提前致谢。
-T
答案 0 :(得分:3)
设置模型:
# app/models/user.rb
class User < ActiveRecord::Base
has_many :questions, dependent: :destroy
end
# app/models/question.rb
class Question < ActiveRecord::Base
belongs_to :user
end
将user_id
列添加到您的questions
表格中:
rails g migration AddUserIdToQuestions user_id:integer
rake db:migrate
然后,在相应的控制器操作中:
def your_action_method
@user = User.find(1) # find a user
end
然后,在相应的视图中:
<ul>
<% @user.questions.each do |question| %>
<li><%= question.title %></li>
<li><%= question.user_id %></li>
<li><%= @user.email %></li>
<% end %>
</ul>
这是一个基本的工作设置,以便您可以启动。但是,还有更多工作要做。绝对查看official Rails Guide for Association。
此外,在创建拥有对象(question
)时,您必须将其与正确的所有者对象(user
)相关联,以便您可以在任何时间执行:user.questions
获取该特定questions
的{{1}}。像这样:
user
您还可以在@user = User.find(1)
@question = Question.create(title: 'Title', body: 'body', user_id: @user.id)
模型中添加Active Record Validations,以确保在创建Question
记录时user_id
存在:
question
答案 1 :(得分:1)
学习有效记录关联。安装用户在您的模型中有许多问题。 然后,当您将用户集合对象作为用户作为每个块内的单个对象进行迭代时,您将遇到方法问题(例如user.questions)。现在遍历user.questions,您将收到该特定用户的问题。 http://guides.rubyonrails.org/association_basics.html