2016-08-19 1 views
0

dies ist der subjects_controllerNameerror: undefined lokale Variable oder Methode `params' für Haupt: Object aus (IRB): 7

class SubjectsController < ApplicationController 
layout false 
def index 
@subjects = Subject.order("position ASC") 
end 

def show 

@subject = Subject.find(params[:id]) 

end 

def new 
end 

def edit 
end 

def delet 
end 
end 

und dies ist der 'show.html.erb'

<%= link_to("<< Back to List", {:class => 'index'}) :class => 'back- link)'%> 
<div class ="subjects show"> 
<h2>Show Subject</h2> 

<table sammary="Subject detail view"> 
<tr> 
    <th>Name</th> 

    <td><%= @subject.name %></td> 
</tr> 
<tr> 
    <th>Position</th> 
    <td><%= @subject.position %> </th> 
</tr> 
    <tr> 
    <th>Visible</th> 
    <td><%= @subject.visible ? 'true': 'flse' %> </th> 
</tr> 
<tr> 
    <th>Created</th> 
    <td><%= @subject.created_at %> </th> 
</tr> 
<tr> 
    <th>Updated</th> 
    <td><%= @subject.updated_at %> </th> 
</tr> 
</table> 
</div> 

so, wenn ich auf dem Browser auf etwas klicken bekomme ich nicht alles und wenn ich diese Konsole auf Schienen tat

Subject.find(params[:id]) 

ich dieses messag erhalten e
Nameerror: undefined lokale Variable oder Methode `params' für Haupt: Objekt aus (rb): 7

+1

weil irb/console nicht weiß, was params ist. – uday

Antwort

0

params in der aktuellen Konsole Kontext nicht definiert ist. Sie versuchen, Controller-Code in Ihrer Konsole neu zu erstellen. In der Steuerung wird params automatisch entsprechend den eingehenden HTTP-Anforderungsparametern zugewiesen. In der Konsole ist params nicht definiert, es sei denn, Sie weisen es explizit zu. Versuchen Sie dies in Ihrer Konsole:

params = {id: 1} 
Subject.find(params[:id]) 

Es wird nicht einen Fehler aus, wenn Subject in der Tat ist ein Activerecord-Modell.

Was möchten Sie wirklich erreichen?

0

Wenn Sie Ihren Controller debuggen, verwenden pry oder byebug eine Debug-Konsole für den spezifischen Kontext zum Beispiel zu bekommen:

def edit 
    binding.pry 
    @subject = Subject.find(params[:id]) 
end 

Zum subjects/1/edit Pfad, Schienen-Server an der Bruchstelle stoppt und Sie kann auf die Debug-Konsole zugreifen.

Verwandte Themen