2011-04-28 106 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%>