2016-04-22 10 views
0

Wie kann ich einen Pfad erstellen, der einen Benutzer zum Erstellen von GET nehmen würde?Wie verwende ich einen GET Create-Pfad?

<%= link_to 'New Challenge', challenges_path(name: 'foo') %> #takes user to index 

challenges_controller

def create 
    @challenge = Challenge.new(challenge_params) 
    if params[:step] == '2' 
     @challenge = current_user.challenges.build(challenge_params) 
     @challenge.name = challenge_params[:name] 
     if @challenge.name == 'foo' 
     @challenge.category = 'habit' 
     else 
     @challenge.category = 'goal' 
     end 
     @challenge.save 
     redirect_to @challenge 
     respond_modal_with @challenge 
    end 
    end 

Herausforderungen/create.html.erb

<%= simple_form_for(@challenge) do |f| %> 
    <%= hidden_field_tag :step, 2 %> 
    etc.. 
<% end %> 

Antwort

2

Sie mögen dies tun können:

zuerst eine Route für GET Anfrage an challenges#create in routes.rb wie unten erstellen:

get 'create_challenge' => 'challenges#create'

Jetzt können Sie diese Anforderung Pfad erstellen erhalten machen verwenden:

<%= link_to 'New Challenge', create_challenge_path(name: 'foo') %> 

I don Ich weiß nicht, was in challenge_params ist, um die create Aktion richtig funktionieren zu lassen, müssen Sie die challenge_params übergeben.

Wenn Sie die params als: {challenge: {name: 'foo'}} Sie als unten tun können:

<%= link_to 'New Challenge', create_challenge_path(challenge: {name: 'foo'}) %> 
0

Zunächst einmal eine Aktion erstellen sollte durch eine POST-Anforderung ausgelöst werden (GET zum Lesen verwendet, wie der Name andeutet).

Typische CRUD-Controller hat die folgende Zuordnung von Aktionen zu HTTP-Methoden:

Create - POST; 
Read - GET; 
Update - PUT; 
Delete - DELETE. 

Die Routen von Anfragen an Controllern # Aktionen in der config/routes.rb-Datei definiert werden und wird wie folgt aussehen:

Rails.application.routes.draw do 
    post '/challenges', to: 'challenges#create', as: 'challenges_create' 
end 

besser lesen die Rails Führungen - Action Controller, Rails Routing usw.

Verwandte Themen