我是新來的RoR,任何幫助將不勝感激:)
我有一個基本的腳手架CRUD應用程序添加客戶。
我想按first_name或last_name字段進行搜索。
無法在軌道上獲得簡單的紅寶石搜索上班時間:/
,我得到的錯誤是:
NoMethodError在Clientes#找到 你有一個零對象時,你沒想到吧! 您可能預期了Array的一個實例。
6: <th>Apellido</th>
7: </tr>
8:
9: <% for cliente in @clientes %>
10: <tr>
11: <td><%=h cliente.client_name %></td>
12: <td><%=h cliente.client_lastname %></td>
應用程序跟蹤在控制器
C:/Rails/clientes/app/views/clientes/find.html.erb:9:in `_run_erb_app47views47clientes47find46html46erb'
我的查找功能/ clientes_controlee.rb:在評估nil.each
提取的源(圍繞線#9)發生 錯誤是:
# Find
def find
@cliente = Cliente.find(:all,
:conditions=>["client_name = ? OR client_lastname = ?", params[:search_string], params[:search_string]])
end
點
我的意見/佈局clientes.html.erb形式的代碼片段:
<span style="text-align: right">
<% form_tag "/clientes/find" do %>
<%= text_field_tag :search_string %>
<%= submit_tag "Search" %>
<% end %>
</span>
我的意見/ clientes/find.html.erb創建的搜索模板:
<h1>Listing clientes for <%= params[:search_string] %></h1>
<table>
<tr>
<th>Nombre</th>
<th>Apellido</th>
</tr>
<% for cliente in @clientes %>
<tr>
<td><%=h cliente.client_name %></td>
<td><%=h cliente.client_lastname %></td>
<td><%= link_to 'Mostrar', cliente %></td>
<td><%= link_to 'Editar', edit_cliente_path(cliente) %></td>
<td><%= link_to 'Eliminar', cliente, :confirm =>'Estas Seguro de que desear eliminar a este te cliente?', :method => :delete %></td>
</tr>
<% end %>
</table>
<br />
<%= link_to 'Atras', clientes_path %>
開發日誌
處理ClientesController#索引(對於127.0.0.1在2010-05-02 22:14:29)[GET] [4; 36; 1mCliente Load(1.0ms)[0m [0; 1mSELECT * FROM「 clientes」 [佈局/ clientes內0米 渲染模板 渲染clientes /在28ms完成索引 (查看:19,DB:1)| 200 OK [http://localhost/clientes]
處理ClientesController#SRC(在22點14分36秒2010-05-02 127.0.0.1)[POST] 參數:{ 「search_string的」=> 「愛德華calvachi」, 「提交」= >「搜索」,「authenticity_token」 =>「mSaFeUAWdIWBNPkTufX2hdx7NaMaGfLSp1h78nTB7Ns =」}
NoMethodError(你有一個零對象時,你沒想到吧! 你期望的ActiveRecord :: Base的實例。 錯誤發生在評估零[]): app/controllers/clientes_controller.rb:88:in`src'
渲染救援/ _trace(48.0ms ) 渲染救援/ _request_and_response(0.0ms) 渲染救援/佈局(INTERNAL_SERVER_ERROR)
處理ClientesController#SRC(爲127.0.0.1在2010-05-02 22點20分二十八秒)[POST] 參數:{ 「SEARCH_STRING」=> 「愛德華calvachi」, 「提交」=> 「搜索」, 「authenticity_token」=> 「mSaFeUAWdIWBNPkTufX2hdx7NaMaGfLSp1h78nTB7Ns =」}
NoMethodError(你有一個零對象時,你沒想到吧! 您可能已經預期了ActiveRecord :: Base的實例。而評估零發生 錯誤[]): 應用程序/控制器/ clientes_controller.rb:88:在`SRC」
渲染救援/ _trace(92.0ms) 渲染救援/ _request_and_response(1.0ms的) 渲染(內部服務器錯誤)
處理ClientesController#src(對於127.0.0.1在2010-05-02 22:36:12)[POST] 參數:{「search_string」=>「eduardo calvachi」,「commit 「=>」搜索「,」authenticity_token「=>」mSaFeUAWdIWBNPkTufX2hdx7NaMaGfLSp1h78nTB7Ns =「}
NoMethodError(您有nil當你沒有料到它的時候! 您可能已經預期了ActiveRecord :: Base的實例。而評估零發生 錯誤[]): 應用程序/控制器/ clientes_controller.rb:88:在`SRC」
渲染救援/ _trace(39.0ms) 渲染救援/ _request_and_response(0.0ms) 渲染救援/佈局(internal_server_error)
您的routes.rb文件是否有此操作的定義? – Lowgain 2010-05-03 02:11:30
在你的'find'方法中,@cliente應該是@clientes ... – Staelen 2010-05-03 02:41:36
嗨Lowgain,我只有默認路由: ActionController :: Routing :: Routes.draw do | map | map.resources:clientes 和 map.connect ':控制器/:動作/:身份證' 和 map.connect ':控制器/:動作/:ID:格式' – edu222 2010-05-03 03:00:31