ビューでのみアクセスできるようにフォームフィールドをマークする方法はありますか?ROR:フォームフィールドのみを表示
私は、ビュー内の特定の要素をビルドおよびオーダーするためにjQueryと併用するいくつかの「ヘルパー」フィールドを持っています。これらのフィールドはコントローラに渡す必要はなく、モデルにはまったくリンクされていません。
RORフォームフィールドで使用できる属性があるかどうかはわかりません。
現在、私はバニラフォームフィールドを使用しています。
ビューでのみアクセスできるようにフォームフィールドをマークする方法はありますか?ROR:フォームフィールドのみを表示
私は、ビュー内の特定の要素をビルドおよびオーダーするためにjQueryと併用するいくつかの「ヘルパー」フィールドを持っています。これらのフィールドはコントローラに渡す必要はなく、モデルにはまったくリンクされていません。
RORフォームフィールドで使用できる属性があるかどうかはわかりません。
現在、私はバニラフォームフィールドを使用しています。
FormTagHelper
()が参考になる場合があります。このヘルパーを使用すると、フォームの外にhtml入力を作成できます(この方法では、これらの入力フィールドの値はコントローラに送信されません)。
HTMLは、送信から除外するすべてのフォーム要素に「無効」属性を提供します。これを使用するか、フォーム提出から属性を削除するjavascriptを使用して、事前提出チェックを行います。
Archit Bawejaの答えを拡張すると、無効なBUTTON、INPUT、OPTGROUP、OPTION、SELECT、およびTEXTAREAタグはフォームとともに送信されません。 http://www.w3.org/TR/html4/interact/forms.html#h-17.12
また、これらの入力が "upodate_attributes(params)"を介してコントローラに大量に割り当てられているとのセキュリティ上の懸念がある場合は、attr_accessibleを使用してこのエンドユーザの割り当てを防ぐことができます。
class AccountsController < ApplicationController
include ActiveModel::MassAssignmentSecurity
attr_accessible :first_name, :last_name
attr_accessible :first_name, :last_name, :plan_id, :as => :admin
def update
...
@account.update_attributes(account_params)
...
end
protected
def account_params
role = admin ? :admin : :default
sanitize_for_mass_assignment(params[:account], role)
end
end
MassAssignmentSecurityモジュールの
詳しい情報はここで見つけることができます:http://api.rubyonrails.org/classes/ActiveModel/MassAssignmentSecurity/ClassMethods.html
感謝。update_attributesを使用するときは、このメソッドを呼び出すと、あなたはホワイトリストに希望のパラメータ名を渡し、通過することを可能にします、まさに私が探していたものです ために。 RORの代替:) – Rumpleteaser