Rails:控制器更新操作无法更新mysql数据库

时间:2015-02-21 14:41:34

标签: mysql ruby-on-rails-4

我对铁轨比较陌生,所以请耐心等待。

我有一个资源:examen与资源的has_one关系:aanwezigheidslijst。

在aanwezigheids_controller中,我已准备好编辑所有内容" aanwezigheidslijst"。

现在我遇到的问题是编辑时(特别是通过勾选复选框来显示学生是否参加)每个人都可以使用#34; aanwezigheidslijst"当我提交表格时,它会提交给索引' (就像我想的那样)但显然没有对mysql数据库进行任何更改。

没有弹出错误,布局就像我想要的那样,它只是代表布尔值的复选框" aanwezig"我提交时没有更新。

与mysql数据库的连接可以与应用程序的其他部分一起使用。

非常感谢任何解决方案。

修改

建议我看看日志文件。我认为未经许可的参数与它有关吗?任何人都可以澄清吗?

日志文件:

Started PATCH "/aanwezigheidslijst/2/edit" for 127.0.0.1 at 2015-02-21 16:12:14 +0100
Processing by AanwezigheidslijstController#update as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"uxgvXaOPs66wtYBntTr907RN4yfC0vLTfresXPURBow=", "aanwezigheidslijst"=>{"1"=>{"student"=>"Tom Nys", "aanwezig"=>"1"}, "2"=>{"student"=>"Jan de Roeck", "aanwezig"=>"1"}, "3"=>{"student"=>"Nick van Heertum", "aanwezig"=>"0"}}, "commit"=>"Save Aanwezigheidslijst", "id"=>"2"}
  [1m[35mAanwezigheidslijst Load (0.0ms)[0m  SELECT  `aanwezigheidslijsts`.* FROM `aanwezigheidslijsts`  WHERE `aanwezigheidslijsts`.`id` = 2 LIMIT 1
Unpermitted parameters: 1, 2, 3
  [1m[36m (1.0ms)[0m  [1mBEGIN[0m
  [1m[35m (0.0ms)[0m  COMMIT
Redirected to http://localhost:3000/aanwezigheidslijst/index
Completed 302 Found in 8ms (ActiveRecord: 1.0ms)

aanwezigheidslijst migration:

class CreateAanwezigheidslijsts < ActiveRecord::Migration
  def change
    create_table :aanwezigheidslijsts do |t|
      t.string :student
      t.boolean :aanwezig

      t.timestamps
    end
  end
end

aanwezigheids_controller.rb:

class AanwezigheidslijstController < ApplicationController
  def index
    @aanwezigheidslijst = Aanwezigheidslijst.all
    @examen = Examen.all
  end

  def edit
    @aanwezigheidslijst = Aanwezigheidslijst.where(:examen_id => params[:id]).all
  end

  def update
    @aanwezigheidslijst = Aanwezigheidslijst.find(params[:id])

    if @aanwezigheidslijst.update(aanwezig_params)
      redirect_to aanwezigheidslijst_index_path
    else
      render 'edit'
    end

  end
    private

    def aanwezig_params
      params.require(:aanwezigheidslijst).permit(:student, :aanwezig)
    end

end

edit.html.erb:

<div class="tblAanwezig">
  <div class="col-xs-6 col-sm-3">
    <table class="table table-bordered table-condensed" style="max-width: 300px;">
      <thead>
      <tr>
        <th scope="col">Student</th>
        <th scope="col">Aanwezig</th>
      </tr>
      </thead>
      <%= form_tag edit_aanwezigheidslijst_url,  :id => 'al_form', method: :patch do %>
          <% @aanwezigheidslijst.each do |aanwezigheidslijst| %>
              <%= fields_for "aanwezigheidslijst[]",  aanwezigheidslijst do |al| %>
                  <tbody>
                    <tr>
                        <td> <%= al.text_field :student %></td>
                        <td><%= al.check_box :aanwezig %></td>
                    </tr>
                </tbody>
                          <% end %>
                      <% end %>
      </table>
          <%= submit_tag "Save Aanwezigheidslijst" %>
      <% end %>
  </div>
</div>

的routes.rb

Rails.application.routes.draw do
 get 'aanwezigheidslijst/index'

 patch 'aanwezigheidslijst/:id/edit' => 'aanwezigheidslijst#update'

 get 'examen/index'

 get 'comments/new'
 post 'comments/new'

 get 'comments/update'

 get 'comments/create'

 get 'application/application'

 resources :comments
 resources :aanwezigheidslijst

 root 'comments#index'

end

0 个答案:

没有答案