ruby on rails:空数据库记录

时间:2014-08-05 13:23:45

标签: ruby-on-rails-4

我是Ruby on Rails的新手。我正在构建一个用于学习目的的基本应用程序。

我构建了一个表单,当我使用“保存”按钮时,会创建一条记录,但它只是一个只有Id的空记录。

我希望有人可以帮助我。

的routes.rb

Rails.application.routes.draw do
  get 'welcome/index'
      resources :relaties   
  root 'welcome#index'

new.html.erb

<h1>Nieuwe Relatie</h1>

<%= form_for :relatie, url: "/relaties"  do |f| %>
  <p>
    <%= f.label :naam %><br>
    <%= f.text_field :naam %>
  </p>

 <p>
    <%= f.label :straatnaam %><br>
    <%= f.text_field :straatnaam %>
  </p>

 <p>
    <%= f.label :huisnummer %><br>
    <%= f.text_field :huisnunmmer %>
  </p>

 <p>
    <%= f.label :postcode %><br>
    <%= f.text_field :postcode %>
  </p>

 <p>
    <%= f.label :plaats %><br>
    <%= f.text_field :plaats %>
  </p>

 <p>
    <%= f.label :omschrijving %><br>
    <%= f.text_area :omschrijving %>
  </p>

  <p>
    <%= f.submit %>
  </p>
<% end %>

relaties_controller.rb

class RelatiesController < ApplicationController

    def new
        @relatie = Relatie.new
    end

    def create
        @relatie = Relatie.new(params[:relatie])    

        @relatie.save
        redirect_to(@relatie)
    end

    private
  def relatie_params
    params.require(:relatie).permit(:naam, :straatnaam, :huisnummer, :postcode, :plaats, :omschrijving) 
  end   

    def show
        @relatie = Relatie.find(params[:id])
    end 
 end

1 个答案:

答案 0 :(得分:2)

在创建/更新记录时,您应该将要保存在数据库中的属性列入白名单。您已经添加了一个名为relatie_params的方法,但是您没有在代码中使用它,这就是为什么当您尝试创建新的Relatie记录时,没有任何属性存储在数据库中,因为它们是没有列入白名单。

create操作中,替换

 @relatie = Relatie.new(params[:relatie])   

 @relatie = Relatie.new(relatie_params)   

供您参考,请参阅Rails 4

中介绍的Strong Parameters