0
所以,我遇到了一個相當簡單的問題,我無法在SQLite數據庫(Rails)中輸入一些簡單的表單值。有趣的是,代碼不會失敗 - 我提交表單,並且被成功重定向到正確的URL - 並且將記錄插入到數據庫中,但「name, type and user_id
」列沒有填充任何內容。爲了澄清,列的空白,爲新的記錄。無法簡單地將表單信息輸入到SQLite數據庫(Rails)
如果我註釋掉「create
」,簡單的代碼吐出PARAMS(render plain: params[:plan].inspect
)我確實看到所有正確的參數填寫,所以我有一種感覺,必須有在該行一些錯誤:
@plan = Plan.new(params[:plan])
我真的被困在這裏,任何指導都將不勝感激!
的創建形式
<h1> Create a new plan </h1>
<%= form_for :plan, url: plans_path do |f| %>
<p>
<%= f.label :name %><br>
<%= f.text_field :name %>
</p>
<p>
<%= f.label :type %><br>
<%= f.text_field :type %>
</p>
<%= f.hidden_field :user_id, :value => current_user.id %>
<p>
<%= f.submit %>
</p>
<% end %>
plans_controller.rb
class PlansController < ApplicationController
def index
@plans = Plan.all
end
def show
@plan = Plan.find(params[:id])
end
def new
@plan = Plan.new
end
def create
#render plain: params[:plan].inspect
params.permit!
@plan = Plan.new(params[:plan])
if @plan.save
redirect_to @plan
else
redirect_to dashboard_path, :notice => "Plan NOT Created!"
end
end
end
示範
class Plan < ActiveRecord::Base
end
謝謝,但同樣的問題依然。 – user2656127
用不同的名稱改變'type'字段的名字,比如'plan_type'或者別的東西,然後嘗試,因爲'type'被rails用於STI http://api.rubyonrails.org/classes/ActiveRecord/Base.html –
啊,我明白了 - 這是一個保留名稱。我是否需要更改數據庫中的列名或只是在表單中? – user2656127