2017-04-23 5 views
0

私は答えを探しましたが、同じ問題は見つかりませんでした。 基本的には、シンプルなCMSを構築していますが、ビュー付きのコントローラを構築していますが、機能していません。私は送信ボタンを押すことができますが、フォームは応答を与えません。エラーを出力しません。Railsの送信ボタンが応答しない

URLが/ pages/new// pagesに変更されていることに気付きましたが、フォーム上にとどまります。

ページコントローラ:

def index 
@pages = Page.sorted 
end 

def show 
    @page = Page.find(params[:id]) 
end 

def new 
    @page = Page.new 
end 

def create 
    @page = Page.new(page_params) 
    if @page.save 
    flash[:notice] = "Page created succesfully." 
    redirect_to pages_path 
    else 
    render('new') 
    end 
end 

def edit 
@page = Page.find(params[:id]) 
end 

def update 
    @page = Page.find(params[:id]) 
    if @page.update_attributes(page_params) 
    flash[:notice] = "Subject updated succesfully." 
    redirect_to page_path(@page) 
    render('edit') 
end 
end 

def delete 
    @page = Page.find(params[:id]) 
end 

def destroy 
    @page = Page.find(params[:id]) 
    @page.destroy 
    flash[:notice] = "Page '#{@page.name}' destoyed succesfully." 
    redirect_to(pages_path) 
end 

private 

    def page_params 
    params.require(:page).permit(:subject_id, :name, :position, :visible, :permalink) 
    end 

new.html.erb:

<%= link_to("<< Back To List", pages_path, :class => 'back-link') %> 

<div class = "pages new"> 
<h2>Create Page</h2> 

<%= form_for(@page, :url => pages_path, :method => 'post') do |f| %> 

    <table summary = "Page form fields"> 
     <tr> 
      <th> Name: </th> 
      <td><%= f.text_field(:name) %></td> 
     </tr> 

     <tr> 
      <th> Subject ID: </th> 
      <td><%= f.text_field(:subject_id) %></td> 
     </tr> 

     <tr> 
      <th> Permalink: </th> 
      <td><%= f.text_field(:permalink) %></td> 
     </tr> 

     <tr> 
      <th>Position: </th> 
      <td><%= f.text_field(:position) %></td> 
     </tr> 

     <tr> 
      <th>Visible: </th> 
      <td><%= f.text_field(:visible) %></td> 
     </tr> 
    </table> 

    <div class="form-buttons"> 
     <%= f.submit("Create Page") %> 
    </div> 
    <% end %> 
</div> 

EDIT:

<%= form_for(@page) do |f| %>にフォームのコードを変更しようとしたが、私はまだ同じ問題を抱えている

コードの一部を@page.save!に追加しました私のコードでは深刻なエラーが表示されています。少なくとも私はこの問題を解決しました。どうもありがとうございました。

+0

このような状況では(ボタンは何もしません)、レールのコンソール出力(端末で生成されるテキスト)にエラーがないかどうかを確認してください。 =) – HashRocketSyntax

答えて

1

それはあなたのformからの情報が有効ではないと思われる、あなたのcreateアクションでsave!代わりsaveのを使用してみてください:あなたのログにエラーが表示されます

def create 
    @page = Page.new(page_params) 
    if @page.save! 
    flash[:notice] = "Page created succesfully." 
    redirect_to pages_path 
    else 
    render('new') 
    end 
end 

関連する問題