私はいくつかの情報を保存しようとしていますが、実際には既存の情報を編集しています。このようなフォームを作成しました
%form{ :action => "/users/custom", :method => "post", :controller => "/users", data: {remote: true}}
%input{:type => "text", :name => "name", :class => "text ", :value => " #{@current_user.first_name} #{@current_user.last_name}" }
%input{:type => "text", :name => "age", :class => "text ", :value => " #{@current_user.age}" }
他にも(重量と住所)...これらのフィールドとまったく同じ方法で「メール」の1つだけがDBに永続化されているという問題がありますが、年齢などの他のフィールドは0で永続化されます
私のコントローラーには、このようなものがあります
@user = User.find(session[:current_user])
@user.email = params[:mail]
@user.weight = params[:weight].to_i
... and so on...
if @user.save
flash[:notice] = 'The User is successfully saved!'
end
これを修正する方法はありますか?または何が間違っているかを知るために?
ありがとう
編集
Started POST "/users/custom" for 192.168.1.21 at 2013-05-08 15:50:04 -0600
Processing by UsersController#custom as JS
Parameters: {"name"=>"name", "mail"=>"NEW MAIL", "sex"=>"1", "weight"=>"180" ... }
User Load (0.1ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1
(0.1ms) BEGIN
(0.3ms) UPDATE `users` SET `email` = 'NEW MAIL', `sex` = 0, `ssn` = 0, `updated_at` = '2013-05-08 21:50:04' WHERE `users`.`id` = 1
(1.2ms) COMMIT
名前の編集は機能しません。機能するのはメールだけです。
足場のデフォルトフォームでそれらを編集したいとき、フィールドの重みなどを見ることができず、名前を含めてほんの少ししか表示されません(ここからはどちらも編集できません)
私のモデルにはいくつかの制限があります。
validates :first_name, :format => { :with => /\A[a-zA-Z]+\z/, :message => "Only letters allowed" }, :allow_blank => true
問題は、削除しても... 0 を挿入し続けることです...何か考えはありますか?