2016-08-18 1 views
0

Ich möchte fragen, was die Liste der Schlüssel im Objekt params sind. Code aus Schienen Anleitung:Ruby auf Schienen, was sind die Schlüssel innerhalb Parameterobjekt?

def destroy 
    @article = Article.find(params[:article_id]) 
    @comment = @article.comments.find(params[:id]) 
    @comment.destroy 
    redirect_to article_path(@article) 
    end 
+0

'setzt params.keys.inspect'. –

+0

Parameter Schlüssel unterscheiden sich von Modell zu Modell. Die Schlüssel basieren auf Ihren Modellspalten und den übergebenen Parametern in der URL. Sie können die Verwendung von puts params.inspect überprüfen – SnehaT

Antwort

1

Neben Tasten wie action, controller und authenticity_token, die keys in den meisten params Objekt unterscheiden sich von Anwendung zu Anwendung. Der beste Weg, um zu sehen, was in Ihren Params ist, ist inspect es.

In dem oben angegebenen Code könnten Sie beispielsweise byebug oder pry verwenden, um die Ausführung anzuhalten (ähnlich wie beim Setzen eines Haltepunkts).

Obwohl meine persönliche Vorliebe pry ist, nehmen wir ein Beispiel mit byebug, da es standardmäßig mit Schienen geliefert wird.

def destroy 
    byebug 
    @article = Article.find(params[:article_id]) 
    @comment = @article.comments.find(params[:id]) 
    @comment.destroy 
    redirect_to article_path(@article) 
end 

Sobald Sie diese hinzugefügt haben, drücken Sie die destroy Strecke aus der Sicht, dann auf die Konsole zurück. An diesem Punkt sollte die Ausführung angehalten sein.

Sie können dann auf params oder eine andere bereits definierte Variable zugreifen. Geben Sie params gefolgt von der Eingabetaste ein, wird Ihnen alles im params-Objekt angezeigt.

0

Ich würde debug(params) verwenden. Das wird Ihnen eine schön formatierte Ansicht von ihnen geben.

0

Wenn Sie im Browser drucken möchten und alle Params sehen, was passiert.

render plain: params 
0

Sie können am besten verstehen, dies mit Hilfe einer Aktion, die eine Form (create oder update) beinhaltet. Versuchen Sie dies in Ihrer create Aktion.

def create 
    render text: params 
end 

Dies wird in den params einschließlich Tasten wie authenticity_token, controller, action, commit und Formularwerte alle Schlüsselwertpaaren anzuzeigen.

Wenn Sie daran interessiert sind nur in Form von Werten, versuchen

def create 
    render text: params[:article] 
end  

hoffe, das hilft!

Verwandte Themen