2017-04-23 68 views
0

我搜索了答案,但我找不到同樣的問題。 基本上 - 我正在構建一個簡單的CMS,我正在構建一個帶有視圖的控制器,但它不起作用。我可以按提交按鈕,但表單沒有迴應,甚至沒有輸出任何錯誤。Rails提交按鈕沒有迴應

我也注意到它將/ pages/new中的url更改爲/ 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> 

編輯:

試圖改變形式的代碼<%= form_for(@page) do |f| %>,但我仍然有同樣的問題

我添加了@page.save!部分代碼,它ga讓我看到一個錯誤,它顯示了我的代碼中更深的錯誤!至少我解決了這個問題。非常感謝你。

+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 

這將顯示在您的日誌中的錯誤。