Rails提交按钮没有回应

问题描述:

我搜索了答案,但我找不到同样的问题。 基本上 - 我正在构建一个简单的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

似乎从你的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 

这将显示在您的日志中的错误。