0

私はいくつかの情報を保存しようとしていますが、実際には既存の情報を編集しています。このようなフォームを作成しました

%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 を挿入し続けることです...何か考えはありますか?

4

1 に答える 1

0

次のようにして、デバッグブレークポイントを配置できbinding.pryます。コントローラーアクションのどこにでも。Pry gem をGemfile好きなように追加してくださいgem 'pry'

次に、コードを実行すると、サーバー ウィンドウでブレークポイントがヒットし、問題をデバッグできるようになります。

于 2013-05-08T19:56:21.110 に答える