2016-03-29 8 views
0

Ich verwende eine Einschränkung eine Sub-Domain für die Seiten in meiner App keystrategy.[mypage]Entfernen Sub-Domain von der Form

get '/', to: 'referal#new', constraints: { subdomain: 'keystrategy' } 

Es bringt mich zu setzen. Diese Seite enthält nur ein paar Zeilen:

<%= form_for @referal, url: {action: "create", subdomain: false} do |f| %> 
    <%= f.text_field :referer %> 
    <input type="hidden" value="keystrategy"> 
<%= f.submit "Valider" %> 
<% end %> 

Aber wenn ich versuche, diese Seite zu laden, erhalte ich die folgende Fehlermeldung:

No route matches {:action=>"create", :controller=>"referal", :subdomain=>"keystrategy"} 

Was bin ich? Ich dachte, die subdomain: false diesen

+0

Code sieht gut aus, aber Sie können versuchen, url_for controller: "referal" action: "create", subdomain: false –

Antwort

0

Ok, so fand ich heraus, dass es nicht über die Form selbst, sondern wegen Routing. Wenn Sie eine Subdomain verwenden, wird jede neue Route, die von

resources :whatever 

erzeugt wird, davon ausgegangen, dass Sie dies in Ihrer aktuellen Subdomain tun. Wenn subdomain.yousite.com auf eine Ansicht verweist, die ein Formular enthält, wird das Formular daher von subdomain.yoursite.com/whatevers als eine POST-Anforderung behandelt.

Sie müssen also sicherstellen, dass diese Route Ihre Subdomain enthält. In Ihrer routes.rb Datei, fügen Sie die folgenden Zeilen:

<%= form_for @referal do |f| %> 
    <%= f.text_field :referer %> 
    <input name="referal-type" type="hidden" value="keystrategy"> 
    <%= f.submit "Valider" %> 
<% end %> 

Und du bist ganz eingestellt:

get '/', to: 'whatever#new', constraints: { subdomain: 'yoursubdomain' } 
post '/whatevers', to: 'whatever#create', constraints: { subdomain: 'yoursubdomain' } 

Ihr Formular sollte wie folgt aussehen.

0

Gebrauch diesen Code verhindern würde:

<%= form_for @referal, url: referal_url(subdomain: false) do |f| %> 
    <%= f.text_field :referer %> 
    <input type="hidden" value="keystrategy"> 
    <%= f.submit "Valider" %> 
<% end %> 
+0

Ich habe versucht, den folgenden Fehler erhalten: Keine Route entspricht {: action => "show",: controller => "referals",: subdomain => "keystrategy"} fehlende Schlüssel: [: id] –