2016-07-27 4 views
0

私のフォームで "submit"を押すと、:createルートにはルーティングされません。私が "submit"を押すと、url内の自分のparamsを使って:新しいルートに行きます。私はRails 5にアップグレードし、ブートストラップを使用しました。私が間違っていることには何の手がかりもありません。Rails 5はルートを作成するためにフォームを提出しません

routes.rbを

Rails.application.routes.draw do 
    root 'pizzas#index' 
    resources :pizzas 
    resources :toppings 
end 

Railsのルート

Prefix Verb URI Pattern     Controller#Action 
     root GET /       pizzas#index 
     pizzas GET /pizzas(.:format)   pizzas#index 
      POST /pizzas(.:format)   pizzas#create 
    new_pizza GET /pizzas/new(.:format)  pizzas#new 
    edit_pizza GET /pizzas/:id/edit(.:format) pizzas#edit 
     pizza GET /pizzas/:id(.:format)  pizzas#show 
      PATCH /pizzas/:id(.:format)  pizzas#update 
      PUT /pizzas/:id(.:format)  pizzas#update 
      DELETE /pizzas/:id(.:format)  pizzas#destroy 

PizzasController

class PizzasController < ApplicationController 
    def index 
    @pizzas = Pizza.all 
    end 

    def new 
    @pizza = Pizza.new 
    end 

    def create 
    @pizza = Pizza.new(pizza_params) 
    render text: params.inspect 
    end 

    private 

    def pizza_params 
    params.require(:pizza).permit(:name, :description) 
    end 
end 

new.html.erbビュー

<div class="container"> 
    <h1>Create Your Own Pizza:</h1> 

    <form class="form-horizontal"> 
    <%= form_for(@pizza) do |f| %> 

    <div class="form-group"> 
     <%= f.label :name %> 
     <%= f.text_field :name %> 
    </div> 

    <div class="form-group"> 
     <%= f.label :description %> 
     <%= f.text_field :description %> 
    </div> 

     <%= f.submit %> 

    <% end %> 
    </form> 
</div> 
+0

「<%= form_for(@pizza)do | f | %> 'は自動的に

タグを作成するので、2が正しくありません。これはHTMLです。外側のフォームにはアクションがありませんでしたので、何もしていませんでした。 –

答えて

0

ああ、私は時間を費やしてそれを理解しました。

なんらかの理由でタグが準拠していません。それがRailsの問題かブートストラップかどうかはわかりません。次のようなタグに変更する必要があります。

<div class="container"> 
    <h1>Create Your Own Pizza:</h1> 

    <div class="form-horizontal"> // Changed this to a Div Tag 
    <%= form_for(@pizza) do |f| %> 

    <div class="form-group"> 
     <%= f.label :name %> 
     <%= f.text_field :name %> 
    </div> 

    <div class="form-group"> 
     <%= f.label :description %> 
     <%= f.text_field :description %> 
    </div> 

     <%= f.submit %> 

    <% end %> 
    </div> // Changed this to a Div Tag 
</div> 
関連する問題