Übergabe von Parametern von view zu controller
Bekam ich ein bisschen ein Neuling Frage. Ich bin versucht, übergeben Sie eine variable aus meiner Sicht zu meinem controller. Es ist trotzdem meine Methode in meinem controller empfangen können Variablen aus meiner Sicht?
Post view: show.html.erb:
....
<%=link_to "Add relationship", :method => :add_relationship(@rela) %>
Controller: post.controller.rb:
def add_relationship(rela)
@post = Post.find(params[:id])
if current_user.id == @post.user_id
@post.rel_current_id = rela.id
@post.save
redirect_to relationships_url
else
redirect_to posts_url, :notice => "FY!"
end
end
Vielen Dank im Voraus 🙂
Sie konnte die
es hängt davon ab, die variable geben. Sie können keine Objekte übergeben, um controller. Sie können pass einfach params definieren Sie in einem hidden-tag
Ich eigentlich nur ändern willst, eine id, in meinem Modell, um die aktuelle id der Seite. Meine Seite hat eine id, das ist, warum ich bin versucht zu übergeben, in diesem Modell. Wenn ich will, zu übergeben einen parameter, von meiner Seite, und speichern Sie es in meinem post-Modell (mit my-post-Steuerung). Wie soll ich das tun? So etwas wie "klicken Sie auf diesen link" und ändern Sie die id. <%= link_to "Ändern-id", :method=>add_relationship, params[:rel_current_id = @rela.id]
params
hash...es hängt davon ab, die variable geben. Sie können keine Objekte übergeben, um controller. Sie können pass einfach params definieren Sie in einem hidden-tag
Ich eigentlich nur ändern willst, eine id, in meinem Modell, um die aktuelle id der Seite. Meine Seite hat eine id, das ist, warum ich bin versucht zu übergeben, in diesem Modell. Wenn ich will, zu übergeben einen parameter, von meiner Seite, und speichern Sie es in meinem post-Modell (mit my-post-Steuerung). Wie soll ich das tun? So etwas wie "klicken Sie auf diesen link" und ändern Sie die id. <%= link_to "Ändern-id", :method=>add_relationship, params[:rel_current_id = @rela.id]
InformationsquelleAutor OXp1845 | 2012-12-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie Informationen hinzufügen, um die params-hash-rechts durch die link_to. Ich bin mir nicht sicher, was genau Sie zu tun versuchen, aber ich habe so etwas vor kurzem zum hinzufügen von E-Mail-ich wollte, wenn ich einen link auf die neue E-Mail -
Nun mein Parameter sieht so aus:
Ich kann auf die Art über die params
Anstelle einer Zeichenfolge, wenn Sie die Instanz-variable @rela erhalten Sie die object_id-in die params-hash.
Pro den Kommentar unten, ich bin das hinzufügen meiner Wege zu zeigen, warum der Weg new_invoice_email_path funktioniert:
dieser Weg führt mich an die E-Mail-controller, neue Aktion. E-Mail ist eine verschachtelte route für die Rechnung, ich werde meine Wege zu meiner Antwort oben
öffnen Sie eine Eingabeaufforderung und geben Sie "rake routes", um zu sehen, was den vorgegebenen Routen, die Sie haben. Es sagt Ihnen auch, was für controller und Aktion zugeordnet.
InformationsquelleAutor Steve
Wenn eine Anfrage kommt, wird der controller (und jedes Modell nennt) verarbeitet werden, und erst dann den code anzeigen, wird zuletzt verarbeitet. Die Ansicht können Sie Methoden aufrufen, die in den Helfer, kann aber nicht Referenz Funktionen zurück in den controller.
Allerdings, wenn eine Seite gerendert wird, können Sie entweder post-Informationen zurück an den controller als Teil eines neuen zu beantragen oder die Verwendung von ajax/JQuery (etc), um einen Aufruf einer controller-Funktion aus der Ferne.
Hilft das?
InformationsquelleAutor Chris Lewis