0

御時間ありがとうございます !

簡単な質問ですが、しばらく検索しましたが、まだ自分に合った機能を取得できません。

DB で *lr_transaction_tables* という名前のテーブルを取得し、class LrTransactionsTable < ActiveRecord::Baseそれを使用します。

テーブル全体@entry_ary = LrTransactionsTable.find(:all)を取得してビューに表示するには、次のようにします。

<table id="trans-war-table">
  <% @entry_ary.each do |item| %>
      <tr>
        <td><%= item.ltname %></td>
        <td><%= item.name %></td>
      </tr>
  <% end %>
</table>

where the data under ltname column is "specific word"しかし、すべてではなく、どうすればデータを取得できますか。

試してみましたが、 each' for nil:NilClass`@entry_ary = LrTransactionsTable.find_by_ltname( "specific word" )というエラーが表示されますundefined method

ltnameandnameはテーブル内の列名です。

4

4 に答える 4

2

レール 2 の場合

LrTransactionsTable.find(:all, :conditions => {:ltname => "specific word"})

Rails 3 の場合

@entry_ary = LrTransactionsTable.where(ltname: "specific word")

また

@entry_ary = LrTransactionsTable.where(["ltname =? ", "specific word"])
于 2012-10-29T10:17:41.830 に答える
1

whereこのメソッドを使用して条件を設定します。

LrTransactionsTable.where(:ltname => "specific word")
于 2012-10-29T10:20:10.793 に答える
1

最善の方法を試し、常にモデルで正しいクエリを実行する

あなたのコントローラーで

LrTransactionsTable.find_ltname("specific word")

そしてあなたのモデルに書いてください

def find_ltname(name)
  where("ltname = ?", name)
end

または、そのスコープを作成することもできます

scope :find_ltname, lambda{|name|{ :conditions => ["ltname = ?", name]}
于 2012-10-29T10:21:10.670 に答える