Рельсы 3.1
ruby 1.9.2p290 (2011-07-09) [i386-mingw32]
sqlite3
У меня есть модель с именем usecase, которая не создается или не обновляется должным образом. Когда я создаю новую запись, текстовые столбцы устанавливаются на ноль, а целочисленные значения на основе выбранных значений фиксируются. Существует также целочисленное значение в поле ввода, которое предоставляется пользователем, и оно установлено в ноль.
Когда я пытаюсь выполнить обновление, журнал показывает, что оператор ввода sql не создается и не выполняется. Я могу создавать новые записи и корректно обновлять их с консоли.
Вот код модели (обратите внимание, что все проверки были удалены):
class Usecase < ActiveRecord::Base
attr_accessible :due_at, :failure_end_condition, :frequency, :level_id, :number, :performance_target,
:primary_actor_id, :priority_id, :profile_id, :project_id, :purpose, :success_end_condition,
:title, :trigger, :usecase_status_id
has_many :actor_assignments
has_many :actors, :through => :actor_assignments
has_many :pre_conditions
has_many :post_conditions
has_many :usecase_as_conditions
has_many :scenarios
has_many :variations
belongs_to :profile
belongs_to :project
belongs_to :usecase_status
Вот код контроллера для: class UsecasesController
def new
@usecase = Usecase.new
@usecase.profile_id = current_user.profile.id
@usecase.set_defaults(current_user.profile.default_project_id)
respond_to do |format|
format.html # new.html.erb
format.json { render json: @usecase }
end
end
def edit
@usecase = Usecase.find(params[:id])
respond_to do |format|
format.html {render "edit"}
format.json { render json: @usecase }
end
end
def create
@usecase = Usecase.new(params[:usecases])
respond_to do |format|
if @usecase.save
format.html { redirect_to [:edit, @usecase], notice: 'Usecase was successfully created.' }
format.json { render json: @usecase, status: :created, location: @usecase }
else
format.html { render action: "new" }
format.json { render json: @usecase.errors, status: :unprocessable_entity }
end
end
end
def update
@usecase = Usecase.find(params[:id])
respond_to do |format|
if @usecase.update_attributes(params[:usecases])
format.html { redirect_to @usecase, notice: 'Usecase was successfully updated.' }
format.json { head :ok}
else
format.html { render action: "edit" }
format.json { render json: @usecase.errors, status: :unprocessable_entity }
end
end
end
Журнал для вставки новой записи (обратите внимание, что полученный параметр для: title имеет значение, но в операторе вставки он равен nil.
Started POST "/usecases" for 127.0.0.1 at 2012-01-24 14:50:40 -0800
Processing by UsecasesController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"Uscho1j5FCsbdRUhTyg/Ji79yyPwyMRZUcyiWYtSw54=",
"usecase"=>{"number"=>"1", "title"=>"Create New Record", "due_at"=>"2012-02-07"}, "usecases"=>{"project_id"=>"2",
"usecase_status_id"=>"1", "profile_id"=>"3"}, "commit"=>"Create Usecase"}
[1m[36mSQL (3.0ms)[0m [1m
INSERT INTO "usecases" ("created_at", "due_at", "failure_end_condition", "frequency", "level_id", "lock_version",
"number", "performance_target", "primary_actor_id", "priority_id", "profile_id", "project_id",
"purpose", "success_end_condition", "title", "trigger", "updated_at", "usecase_status_id")
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)[0m
[["created_at", Tue, 24 Jan 2012 22:50:40 UTC +00:00], ["due_at", nil], ["failure_end_condition", nil], ["frequency", nil], ["level_id", nil],
["lock_version", 0], ["number", nil], ["performance_target", nil], ["primary_actor_id", nil], ["priority_id", nil], ["profile_id", 3],
["project_id", 2], ["purpose", nil], ["success_end_condition", nil], ["title", nil], ["trigger", nil],
["updated_at", Tue, 24 Jan 2012 22:50:40 UTC +00:00], ["usecase_status_id", 1]]
Redirected to http://localhost:3000/usecases/2/edit
Completed 302 Found in 71ms
Журнал для обновления (примечание: оператор SQL UPDATE не создается)
Started PUT "/usecases/2" for 127.0.0.1 at 2012-01-24 14:57:04 -0800
Processing by UsecasesController#update as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"Uscho1j5FCsbdRUhTyg/Ji79yyPwyMRZUcyiWYtSw54=", "usecase"=>{"number"=>"1", "project_id"=>"2",
"title"=>"Update Row With New Title", "usecase_status_id"=>"1", "due_at"=>"2012-01-28", "profile_id"=>"3"}, "commit"=>"Update Usecase", "id"=>"2"}
[1m[36mUsecase Load (0.0ms)[0m [1mSELECT "usecases".* FROM "usecases" WHERE "usecases"."id" = ? LIMIT 1[0m [["id", "2"]]
[1m[35mProject Load (1.0ms)[0m SELECT "projects".* FROM "projects" ORDER BY title ASC
[1m[36mUsecaseStatus Load (1.0ms)[0m [1mSELECT "usecase_statuses".* FROM "usecase_statuses" ORDER BY rank ASC[0m
[1m[35mProfile Load (0.0ms)[0m SELECT "profiles".* FROM "profiles" ORDER BY last_name ASC, first_name ASC
Rendered usecases/test.html.erb within layouts/application (147.0ms)
Rendered layouts/_stylesheets.html.erb (2.0ms)
[1m[36mUser Load (0.0ms)[0m [1mSELECT "users".* FROM "users" WHERE "users"."id" = 3 LIMIT 1[0m
[1m[35mProfile Load (1.0ms)[0m SELECT "profiles".* FROM "profiles" WHERE "profiles"."user_id" = 3 LIMIT 1
[1m[36mAccount Load (0.0ms)[0m [1mSELECT "accounts".* FROM "accounts" WHERE "accounts"."id" = 3 LIMIT 1[0m
Rendered layouts/_header.html.erb (330.0ms)
Rendered layouts/_footer.html.erb (0.0ms)
Completed 200 OK in 674ms (Views: 614.0ms | ActiveRecord: 7.0ms)
Спасибо за просмотр.