2011-04-28 51 views
-1

假设我有模型xyz.rb和模型abc.rb.它们之间没有关系。如果想在abc views/print/show.html.erb中打印来自xyz的任何属性?Ruby Rails的基本问题

我知道很基本但是很好的解释。

+2

你真的不得不多放一点精力投入到解释你的问题。 :) – mark 2011-04-28 13:32:43

+0

对不起。假设我有用户和报告,并且想要在user/show.html.erb中显示报告的created_at。有帮助吗? – user659068 2011-04-28 13:36:55

+3

今后,尝试比“Ruby Rails的基本问题”有更好的问题标题。我们知道它是Ruby on Rails,因为这些标签,堆栈溢出中的所有内容都是一个问题,因此您不需要在问题标题中出现“问题”。 – 2011-04-28 23:11:23

回答

0

喜欢的东西:

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

详细信息,你可以找到here

0

当然可以。

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

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

5

您可以从任何控制器,视图或帮助程序方法访问任何模型。 Mvc表示模型,控制器和视图是相关的,但它们之间的访问没有限制。正常的事情。将它们存储在任何控制器的报告实例变量,然后输出视图:

#print_controller.rb 

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

#show.html.erb 

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

我真的觉得,虽然你需要找到学习轨道的更好方法。这是非常基本的,就像你说的,我会建议你买一本书。你会说英语吗,或者你的母语是什么?

+0

我说阿拉伯语,我的英语很烂! – user659068 2011-04-28 13:52:10

+2

你的英语绝对比我的阿拉伯语好。 :)我不知道是否有任何良好的阿拉伯语轨道资源。你可以做的是看看railscasts.com。他们使用英文,但您可以按照“脚本代码”的方式工作,您会发现每个教程都提供了源代码。我认为看其他人的代码是最好的学习方法之一。 – mark 2011-04-28 13:57:40

0

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

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

你可以参考Ruby on Rails的指南,了解轨道。你还可以找到基本的活动记录的解释here

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%>