1

フォーム上の 2 つの要素 (text_field と time_select) を使用して日時属性を更新したいと考えています。これにより、ユーザーは日付ピッカー (jquery ui) を使用して日付を選択し、ドロップダウン メニューを使用して時間を選択できます。

ここに画像の説明を入力

ただし、フォームを更新しようとすると、次のエラーが発生します。

ActiveRecord::MultiparameterAssignmentErrors in StepsController#update

1 error(s) on assignment of multiparameter attributes

Parameters:

{"utf8"=>"✓",
 "_method"=>"put",
 "authenticity_token"=>"FxFbv9OFzCiYjNknZKUtwyAXR99uuOvy8uplv1cKaZE=",
 "step"=>{"description"=>"<p>Project description</p>\r\n",
 "published_on"=>"05/30/2013",
 "published_on(4i)"=>"15",
 "published_on(5i)"=>"19"},
 "commit"=>"Update Step",
 "project_id"=>"92",
 "id"=>"0"}

text_field と time_select のパラメーターを 1 つの datetime に結合するにはどうすればよいですか?

ここに私のフォームがあります:

<%= f.text_field :published_on, :value=> (@step.published_on.strftime("%m/%d/%Y")) %>  at <%= f.time_select :published_on, :class=>"btn dropdown-toggle", :ampm=> true, :ignore_date=>true %>
4

1 に答える 1

0

これは、ViewModels が役立つ可能性があるシナリオですが、それに入るのはやり過ぎです。

したがって、私の頭に浮かぶ最良のオプションは、クライアント側で値をマージするか、サーバー側でparams変数からオブジェクトを構築する直前に値をマージすることです。

サーバー側では、Action Controller Filters を使用して実装できます。
before_filter :merge_somefileds!, only: [:edit]

詳細: http://guides.rubyonrails.org/action_controller_overview.html#filters

于 2013-05-31T19:54:22.567 に答える