Rails: Verwenden Sie button_to, um Aktionen des Controllers zu erstellen - Ruby-on-Rails, Ruby, Ruby-on-Rails-3, Routen

Warum kann ich mit button_to nicht die Erstellungsaktion meines Controllers angeben, statt sie anzuzeigen?

Ich habe mehrmals versucht, hinzuzufügen: action => "create" und andere solche Dinge zu den button_to-Parametern

<%= button_to "subscribe", subscription_path(feed_url: @feed.feed_url)%>

muss ich in meinen routes.rb eine create route angeben? Wenn ja, wie soll ich das tun?

Wenn diese Zeile verwendet wird, bekomme ich diesen Fehler beim Laden:

Routingfehler

Keine Route stimmt überein {: action => "show",: controller => "Abonnements",: feed_url => "http://foo.com/rss"}

In routes.rb habe ich dies als einzige Referenz zu Abonnements.

  resource :subscriptions

Antworten:

3 für die Antwort № 1

Sie müssen verwenden subscriptons_pathnicht subscription_path.

subscription_path dient zum Anzeigen eines bestimmten Abonnements.
subscriptions_path dient zum Anzeigen aller Abonnements (über eine GET-Anfrage) oder zum Erstellen neuer Abonnements (über eine POST-Anfrage).

<%= button_to "subscribe", subscriptions_path(feed_url: @feed.feed_url, :method => :post)%>

Speisekarte