2016-06-20 8 views
0

alle! Ich habe ein Problem mit Schienen. Ich habe einige Code wie folgt aus:Ansicht kann keine Variable vom Controller in Schienen identifizieren

class UsersController < ApplicationController 
def index 
@users = User.all 
end 

<% @users.each do |user| %> 
     <tbody> 
      <tr> 
       <td><%=stt%></td> 
       <td> <%= link_to user.name, user %></td> 
       <td><%=user.first_name + ' ' + user.last_name%></td> 
       <td><%=user.phone%></td> 
      <td><%=user.email%></td> 
      </tr> 
     </tbody> 

Es in der lokalen Ordnung ist, aber wenn ich es auf dem Host bereitstellen, gibt es einen Fehler:

Started GET "/users" for 180.93.29.249 at 2016-06-20 06:34:34 +0000 
App 7027 stdout: Processing by UsersController#index as HTML 
App 7027 stdout: ^[[1m^[[36mUser Load (0.2ms)^[[0m ^[[1mSELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1^[[0m [["id", 1]] 
App 7027 stdout: ^[[1m^[[35mCACHE (0.0ms)^[[0m SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", 1]] 
App 7027 stdout: ^[[1m^[[36mCACHE (0.0ms)^[[0m ^[[1mSELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1^[[0m [["id", 1]] 
App 7027 stdout: ^[[1m^[[35mUser Load (0.5ms)^[[0m SELECT "users".* FROM "users" 
App 7027 stdout: Rendered users/index.html.erb within layouts/application (80.6ms) 
App 7027 stdout: Completed 500 Internal Server Error in 241ms (ActiveRecord: 0.7ms) 
App 7027 stdout: 
App 7027 stdout: ActionView::Template::Error (undefined method `+' for nil:NilClass): 
App 7027 stdout:  31:      <tr> 
App 7027 stdout:  32:        <td><%=stt%></td> 
App 7027 stdout:  33:        <td> <%= link_to user.name, user %></td> 
App 7027 stdout:  34:        <td><%=user.first_name + ' ' + user.last_name%></td> 
App 7027 stdout:  35:        <td><%=user.phone%></td> 
App 7027 stdout:  36:    <td><%=user.email%></td> 
App 7027 stdout:  37:    <%stt+=1%> 
App 7027 stdout: app/views/users/index.html.erb:34:in `block in _app_views_users_index_html_erb___2721014350791878178_25989480' 
App 7027 stdout: app/views/users/index.html.erb:29:in `_app_views_users_index_html_erb___2721014350791878178_25989480' 

Bitte helfen Sie !!!

Antwort

0

Sie umschreiben können folgende als:

<% @users.each do |user| %> 
    <tbody> 
     <tr> 
      <td><%=stt%></td> 
      <td> <%= link_to user.name, user %></td> 
      <td><%= "#{user.first_name} #{user.last_name}" %></td> 
      <td><%= user.phone %></td> 
     <td><%=user.email%></td> 
     </tr> 
    </tbody> 
+0

Ich glaube nicht, dass der Punkt. weil es in Ordnung ist, wenn ich '+' Methode für Zeichenfolge verwende. aber die Ansicht kann die @ users von Controller –

+0

nicht identifizieren. Aus diesem Grund haben Sie ein Problem. Denn im speziellen Fall können 'user.first_name' oder' user.last_name' 'nil' zurückgeben. Und 'nil' +' string 'wird einen Fehler verursachen, wie du es auf deiner Konsole gesehen hast. Wenn Sie "# {} # {}" verwenden, wie ich geschrieben habe, wird es Null zurückgeben, es wird kein Fehler –

+0

get it! Danke sehr !!! –

Verwandte Themen