我如何 运行 一个简单的 each-do 循环来组合来自不同表的列? (回报率)
How do I run a simple each-do loop that combines columns from different tables? (RoR)
我正在尝试使用 each-do 循环遍历两个单独列的数据。我希望问题显示在页面上,然后是用户的电子邮件和 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
了解活动记录关联。安装用户对您的模型有很多疑问。
然后,当您在每个块中将用户集合对象作为单个对象迭代时,您将遇到一个方法问题(例如 user.questions)。现在遍历 user.questions 您将收到针对该特定用户的问题。
http://guides.rubyonrails.org/association_basics.html
设置您的模型:
# 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
table:
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
是时候得到那个特定 user
的 questions
了。像这样:
@user = User.find(1)
@question = Question.create(title: 'Title', body: 'body', user_id: @user.id)
您还可以在 Question
模型中添加 Active Record Validations 以确保在创建 question
记录时存在 user_id
:
# app/models/question.rb
class Question < ActiveRecord::Base
belongs_to :user
validates :user_id, presence: true
end
我正在尝试使用 each-do 循环遍历两个单独列的数据。我希望问题显示在页面上,然后是用户的电子邮件和 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
了解活动记录关联。安装用户对您的模型有很多疑问。 然后,当您在每个块中将用户集合对象作为单个对象迭代时,您将遇到一个方法问题(例如 user.questions)。现在遍历 user.questions 您将收到针对该特定用户的问题。 http://guides.rubyonrails.org/association_basics.html
设置您的模型:
# 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
table:
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
是时候得到那个特定 user
的 questions
了。像这样:
@user = User.find(1)
@question = Question.create(title: 'Title', body: 'body', user_id: @user.id)
您还可以在 Question
模型中添加 Active Record Validations 以确保在创建 question
记录时存在 user_id
:
# app/models/question.rb
class Question < ActiveRecord::Base
belongs_to :user
validates :user_id, presence: true
end