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"而不是全部。

我试过@entry_ary = LrTransactionsTable.find_by_ltname( "specific word" )了,但它给了我undefined method每个'for nil:NilClass`的错误

ltname并且name是表中的列名。

4

4 回答 4

2

对于 Rails 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 回答
0

试试这个:

@entry_ary = LrTransactionsTable.where(ltname: "specific word")
于 2012-10-29T10:18:13.417 回答