从表单中删除子域
remove subdomain from form
我正在使用约束为我的应用程序中的页面设置子域
get '/', to: 'referal#new', constraints: { subdomain: 'keystrategy' }
它把我带到 keystrategy.[mypage]
。此页面仅包含几行:
<%= form_for @referal, url: {action: "create", subdomain: false} do |f| %>
<%= f.text_field :referer %>
<input type="hidden" value="keystrategy">
<%= f.submit "Valider" %>
<% end %>
但是当我尝试加载此页面时,出现以下错误:
No route matches {:action=>"create", :controller=>"referal", :subdomain=>"keystrategy"}
我错过了什么?我以为 subdomain: false
会阻止这个
使用此代码:
<%= form_for @referal, url: referal_url(subdomain: false) do |f| %>
<%= f.text_field :referer %>
<input type="hidden" value="keystrategy">
<%= f.submit "Valider" %>
<% end %>
好的,所以我发现这与表单本身无关,而是因为路由。使用子域时,
生成的每个新路由
resources :whatever
假设您在当前的子域中这样做。因此,如果 subdomain.yousite.com
指向包含表单的视图,则表单将由 subdomain.yoursite.com/whatevers
作为 POST 请求处理。
因此,您必须确保此路由包含您的子域。在您的 routes.rb
文件中,添加以下行:
get '/', to: 'whatever#new', constraints: { subdomain: 'yoursubdomain' }
post '/whatevers', to: 'whatever#create', constraints: { subdomain: 'yoursubdomain' }
您的表单应如下所示:
<%= form_for @referal do |f| %>
<%= f.text_field :referer %>
<input name="referal-type" type="hidden" value="keystrategy">
<%= f.submit "Valider" %>
<% end %>
一切就绪。
我正在使用约束为我的应用程序中的页面设置子域
get '/', to: 'referal#new', constraints: { subdomain: 'keystrategy' }
它把我带到 keystrategy.[mypage]
。此页面仅包含几行:
<%= form_for @referal, url: {action: "create", subdomain: false} do |f| %>
<%= f.text_field :referer %>
<input type="hidden" value="keystrategy">
<%= f.submit "Valider" %>
<% end %>
但是当我尝试加载此页面时,出现以下错误:
No route matches {:action=>"create", :controller=>"referal", :subdomain=>"keystrategy"}
我错过了什么?我以为 subdomain: false
会阻止这个
使用此代码:
<%= form_for @referal, url: referal_url(subdomain: false) do |f| %>
<%= f.text_field :referer %>
<input type="hidden" value="keystrategy">
<%= f.submit "Valider" %>
<% end %>
好的,所以我发现这与表单本身无关,而是因为路由。使用子域时,
生成的每个新路由resources :whatever
假设您在当前的子域中这样做。因此,如果 subdomain.yousite.com
指向包含表单的视图,则表单将由 subdomain.yoursite.com/whatevers
作为 POST 请求处理。
因此,您必须确保此路由包含您的子域。在您的 routes.rb
文件中,添加以下行:
get '/', to: 'whatever#new', constraints: { subdomain: 'yoursubdomain' }
post '/whatevers', to: 'whatever#create', constraints: { subdomain: 'yoursubdomain' }
您的表单应如下所示:
<%= form_for @referal do |f| %>
<%= f.text_field :referer %>
<input name="referal-type" type="hidden" value="keystrategy">
<%= f.submit "Valider" %>
<% end %>
一切就绪。