簡体字中国語 データをデータベースに送信して、Herokuコンソールのみを使用するよう気にしないかもしれません。それを検索する。Rails noob:データベースから値を取得してapplication.html.erbに表示
元の質問
私はすべての書籍を読んだが、今、私は混乱し
を取得しています実装しようとしていることを私は合計という名前のモデル(ない最高の名を、作成したが、もう1つの問題です)、profit
、number
、fees
という3つの列があります。ここでは、コンソールのプリントアウトです
t = Total.first
=> #<Total id: 1, profit: 500, number: 7, fees: 40, created_at: "2012-01-12 04:21:33", updated_at: "2012-01-12 04:21:58">
(私はこのエントリがローカルホストに提示するために利用されることを前提とし、注意してください:3000を開発データベース上で行われている場合)
による私はこのデータを提示するための最も簡単な場所(私のウェブページレイアウトに)application.html.erb
にあるので、私はこのような小さなテーブルを持っている。この表を見ると、インスタンス変数@t.profit
@t.number
と@t.fees
で 'profit'を呼び出すことによって、データをどのように表示したいのかが分かります。
<table class = "condensed-table" >
<thead>
<tr>
<th>Profit </th>
<th>Number of Trades</th>
<th> Fees</th>
</tr>
</thead>
<tbody>
<tr>
<td>$<%= @t.profit %> </td>
<td><%= @t.number %></td>
<td><%= @t.fees %></td>
</tr>
</tbody>
</table>
だから今、それはデータベースからデータを取得し、私は私がコンソールに
ruby-1.9.2-p290 :019 > t.profit
=> 500
を行ったように、t.profit @呼び出すことができるようにインスタンス変数を作成するための唯一の問題ですapplication.html.erb
でTotal.rb model
やプレゼンテーションで、私は、データベースからデータを取得するために....私はこれを行うために必要な
@t = Total.find(params[:id])
を考え出したが、私は方法a何を呼び出す必要がありますそれを動作させるためにどこに置くべきですか?例えば
、私はページコントローラを持っていたページが閲覧、(私は仮定)私はちょうど
def index
@t = Total.find(params[:id])
end
のようなビューのindexアクションを作成することができ、その後、私はちょうど@t.profit
を行うことができます。しかし、もし私のような何かをして私のテーブルを提示する私のサイトのすべての部分でデータを利用することはできませんでした。
私はapplication_controller.rb
に入れしようとしましたが、あなたは、フィルタフックを経由してこれを行うことができ、このエラーメッセージ
NoMethodError in Posts#index
Showing /Users/me/Sites/enki2/app/views/layouts/application.html.erb where line #73 raised:
undefined method `profit' for nil:NilClass
Extracted source (around line #73):
あなたの最後の文は非常に紛らわしいです。サイト全体でその変数を使用できないと思われる理由についてもう少し説明できますか? (ヒント:できます) – sosborn
@sosborn彼が望むのは、特定のリソースのビューだけでなく、すべてのビューで利用可能であることです。とにかくそれは私がそれを理解する方法です。 –
あなたが望む問題は、すべてのビューで利用できるparams [:id]がなくなり、それがどこにあるかにかかわらず、コンテキストに応じて異なります。なぜこのアプリケーション全体が必要なのか分かりません。 –