关于Ruby Rails的基本问题

时间:2011-04-28 13:28:11

标签: ruby-on-rails ruby

假设我有模型xyz.rb和模型abc.rb.他们之间没有关系。如果想在abc views / print / show.html.erb中打印xyz的任何属性怎么做?

我知道非常基本但寻找好的解释。

5 个答案:

答案 0 :(得分:5)

您可以从任何控制器,视图或帮助方法访问任何模型。 Mvc意味着模型,控制器和视图是相关的,但它们之间的访问没有限制。通常要做的是将报告存储到任何控制器中的实例变量,然后在视图中输出:

#print_controller.rb

def show
  @reports = Report.find_by_some_attribute(...

#show.html.erb

<%- @reports.each do |report| -%>
  <%= report.created_at -%>
<%- end -%>

我真的认为你需要找到更好的方法来学习rails。这是非常基本的,就像你说的,我建议你买一本书。你说英语好吗,或者你的母语是什么?

答案 1 :(得分:0)

类似的东西:

XYZ.all.each do |xyz|
  some(xyz)
end

您可以找到here的详细信息。

答案 2 :(得分:0)

当然可以。

假设@x是Xyz模型的一个实例,您可以打印@x对象的任何属性。

如果你没有@x对象。您可以在abc控制器的show动作中找到它并实例化@x。例如,@ x = Xyz.first。

答案 3 :(得分:0)

考虑您的示例,如果您有两个模型User和Report。您可以从用户的控制器,视图等访问Report的created_at。 你需要写这样的东西:

Report.find_by_created_at("2013-11-12 14:43:44.11824")

您可以参考导轨上的红宝石来学习导轨。您还可以找到基本的有效记录说明here

答案 4 :(得分:0)

这是非常基本的,但我正在为此提供最佳解决方案    

在abc控制器中

def show
  @reports = Report.where(:attribute => value)
end

it will get the all records basic on that value

<h1>views/abc/show.html.erb</h1>
<% @reports.each do |report| %>
  <%= report.attribute_name %>
 <%end%>