简单表单提交按钮不起作用

时间:2014-08-06 06:56:09

标签: ruby-on-rails-4 submit simple-form

不知怎的,我的表格不起作用,我不知道为什么。继承我的代码:

<%= simple_form_for @cr, url: edit_cr_path do |f| %>

<hr>
Design Office Involvements<br>
    <%= f.collection_check_boxes :design_office_ids, DesignOffice.all, :id, :sub, {:item_wrapper_class => 'checkbox_container'} %>
<hr>
Procurement Involvements<br>
    <%= f.collection_check_boxes :procurement_ids, Procurement.all, :id, :sub, {:item_wrapper_class => 'checkbox_container'} %>
<hr>
Installation Involvements<br>
    <%= f.collection_check_boxes :installation_ids, Installation.all, :id, :sub, {:item_wrapper_class => 'checkbox_container'} %>
<hr>

<div class="row">
    <div class="col-md-6">  
        Assessment Status
        <%= f.input :assessment_status, :collection => [['Impacted','Impacted'],['Not impacted','Not impacted'],['Under assessment','Under assessment'],['New','New']], label: false, selected: ['New', 'New'] %>
    </div>

    <div class="col-md-6">
        <div style="float: right">
            <%= f.button :submit, 'Save' %>
        </div>
    </div>
</div>
<br>

<% end %>

控制器方法如下:

class CrsController < ApplicationController

    def edit
        @cr = Cr.find(params[:id])
    end

    def update
        @cr = Cr.find(params[:id])
        @cr.update_attributes(cr_params)
        redirect_to edit_cr_path(@cr)
    end

    private

    def cr_params
        params.require(:user).permit(:id, :assessment_status)
    end

end

这样的路线:

EndToEndManagement::Application.routes.draw do

  get '/cr/:id', :to => 'crs#edit', :as => 'edit_cr'
  put '/cr/:id', :to => 'crs#update'
  patch '/cr/:id', :to => 'crs#update'

end

那就是我的提交按钮的html代码rails:

<div class="col-md-6">
    <div style="float: right">
        <input class="btn" name="commit" type="submit" value="Save" />
    </div>
</div>

我认为提交按钮没有正确附加到表单但我试图移动它并清除一些div但没有任何效果。

最好的问候。

编辑:

这就是我测试的内容

  1. 在routes.rb中删除了我的路线,并将其替换为resources :crs,并将表格中的第一行更改为<%= simple_form_for @cr do |f| %>。没工作!
  2. 将simple_form更改为普通表单。没工作!
  3. 用脚手架写了一个完整的testapp,这个形式它有效,但我不知道为什么所以我逐个添加到我的实际应用程序,没有任何东西使它工作。

2 个答案:

答案 0 :(得分:0)

当您尝试保存表单时, edit_cr_path 似乎不是正确的网址。 您需要另一条路线:

post '/crs', :to => 'crs#create'

在您看来,您可能不会需要url选项,因为Rails可以推断只是看对象。

<%= simple_form_for @cr do |f| %>

但是您的对象需要是来自您的控制器的新实例:

class CrsController < ApplicationController

    def new
      @cr = Cr.new #or whatever else to initialize the object
    end

    def create
      #save the instance here
    end

答案 1 :(得分:0)

发现我的错误!并不是说它会如此令人兴奋,但我仍然会发布它:D

我的application.html.erb中有这个小错误

<div style="font-size: 1.3em"
   <%= yield %>
</div>

将其更改为:

<div style="font-size: 1.3em">
   <%= yield %>
</div>

现在它运作正常。