Rails 4.0 param fehlt oder der Wert leer ist
Ich Gelegenheit haben, ein Modell, das eine verschachtelte Ressource Link. In meinem Ausblick/Chancen/Karte Seite wenn ich auf "Zerstören" für einen der links bekomme ich den Fehler:
param fehlt oder der Wert leer ist: link
Den code-snippet ist es beschwerte sich über:
def link_params
params.require(:link).permit(:description, :link_url)
end
Hier ist meine zerstören code:
def destroy
@opportunity = Opportunity.find(params[:opportunity_id])
@link = @opportunity.links.find(link_params)
@link.destroy
respond_to do |format|
format.html { redirect_to links_url, notice: 'Link was successfully destroyed.' }
format.json { head :no_content }
end
Zeigen Sie den code für Ihre zerstören link.
die params werden normalerweise nur verwendet, um den update-Attribute der Modellelemente (außer
ich habe aktualisiert mit meinem zerstören code @gwcoffey
denn ohne ihn bekomme ich den Fehler undefined local variable oder Methode `links_url' @joni
bitte zeigen uns auch, wie die params-hash aussieht. Auch, in der Regel die
die params werden normalerweise nur verwendet, um den update-Attribute der Modellelemente (außer
params[:id]
um das Objekt zu suchen). In der destroy-Aktionen gibt es normalerweise keine Objekt-Attribute, die vom client gesendet, also warum verwenden Sie link_params
in Ihr zerstören-Aktion?ich habe aktualisiert mit meinem zerstören code @gwcoffey
denn ohne ihn bekomme ich den Fehler undefined local variable oder Methode `links_url' @joni
bitte zeigen uns auch, wie die params-hash aussieht. Auch, in der Regel die
params.require
Methode wird nur verwendet, wenn eine rails-Modell wird aktualisiert, mit den params. Wenn Sie nur die Auswahl eines Wertes aus der hash für die Suche, die Sie nicht benötigen, können Sie einfach tun parmas[:link][:description]
InformationsquelleAutor Trung Tran | 2014-06-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern:
:
Haben Sie sich nicht
link
in Ihre params, Sie müssen nur eineid
und einopportunity_id
.Außerdem haben Sie diese:
Ich vermute, Sie haben Ihre
links
Ressource verschachtelte innerhalbopportunities
. Es gibt also keinelinks_url
. Sie verwenden müssen, D. H.,opportunities_links_url(@opportunity)
.Beachten Sie abschließend, dass Sie wahrscheinlich wollen
opportunities_links_path
eher alsopportunities_links_url
es sei denn, Sie explizit benötigen absolute URLs in dieser Instanz.Entdecken Sie Ihren link helper durch ausführen
rake routes
. Alles, was in der linken "prefix" - Spalte aufgerufen werden kann, mit_url
oder_path
am Ende eine url generieren.überarbeitet, um das zu beheben als auch.
InformationsquelleAutor gwcoffey
Ich hatte den gleichen Fehler.
U müssen mit before_action :link_params an der Spitze,
stattdessen tun Sie dies before_action :link_params,nur: [:create]
InformationsquelleAutor rohit verma