我使用簡單的表單來處理初始級別的Web應用程序,這是通過用戶的天數請求保存的。Rails POST表單不要將完整的數據發送到數據庫
這裏是碼
視圖/天/ index.html.erb
<%= form_for @daysoff, url: {action: "create"} do |f| %>
<%= f.date_field :offdate, id: 'altField' %>
<p> User holding the fort/Yerine bakicak kisi
<%= f.collection_select(:assign_id, @people, :id, :name) %> </p>
<%= f.hidden_field :user_id, value: @user.id %>
<%= f.submit "Submit" %>
<% end %>
控制器/ days_controller.rb
class DaysController < ApplicationController
unloadable
def index
@people = User.all
@user = User.current
@daysoff = Daysoff.new
# params[:daysoff][:user_id] = @user.id
end
def create
off_dates = params["daysoff"]["offdate"].try(:split,',')
off_dates.each do |off_date|
@days_off = Daysoff.new
@days_off.offdate = Date.strptime(off_date.strip, "%m/%d/%Y")
@days_off.user_id = User.current
@days_off.assign_id = params["assign_id"]
@days_off.status = 0
@days_off.save!
end
redirect_to "/days_off_redmine", :flash => { :success => "Istek gonderildi." }
end
沒有任何模型驗證。
數據庫遷移文件。
class CreateDaysoffs < ActiveRecord::Migration
def change
create_table :daysoffs do |t|
t.date :offdate
t.integer :user_id
t.integer :assign_id
t.boolean :status
end
end
end
當我嘗試填充和崗位的形式, Offdates和狀態正確填寫,但USER_ID和assign_id插入分貝爲NULL。
+----+------------+---------+-----------+--------+
| id | offdate | user_id | assign_id | status |
+----+------------+---------+-----------+--------+
| 1 | 2015-07-14 | NULL | NULL | 0 |
| 2 | 2015-07-15 | NULL | NULL | 0 |
| 3 | 2015-07-14 | NULL | NULL | 0 |
| 4 | 2015-07-15 | NULL | NULL | 0 |
| 5 | 2015-07-22 | NULL | NULL | 0 |
| 6 | 2015-07-23 | NULL | NULL | 0 |
| 7 | 2015-07-21 | NULL | NULL | 0 |
| 8 | 2015-07-22 | NULL | NULL | 0 |
| 9 | 2015-07-21 | NULL | NULL | 0 |
| 10 | 2015-07-22 | NULL | NULL | 0 |
| 11 | 2015-07-21 | NULL | NULL | 0 |
| 12 | 2015-07-22 | NULL | NULL | 0 |
| 13 | 2015-07-29 | NULL | NULL | 0 |
| 14 | 2015-07-30 | NULL | NULL | 0 |
| 15 | 2015-07-29 | NULL | NULL | 0 |
| 16 | 2015-07-30 | NULL | NULL | 0 |
+----+------------+---------+-----------+--------+
爲什麼這會發生這樣呢?
您的形式'user_id'和控制器使用'User.current'這是零。這似乎不一致:)。你也將'assign_id'設置爲'params [「assign_id」],它也是零,因爲它不在你的窗體中,或者它在別的什麼地方? –
@JackWatson請檢查收集字段。即時通訊使用webrick,它把日誌到標準輸出,當我發送請求,我看到我的所有領域已滿。我認爲你的想法沒有錯誤。 –