2012-02-25 8 views
0

ビューでのみアクセスできるようにフォームフィールドをマークする方法はありますか?ROR:フォームフィールドのみを表示

私は、ビュー内の特定の要素をビルドおよびオーダーするためにjQueryと併用するいくつかの「ヘルパー」フィールドを持っています。これらのフィールドはコントローラに渡す必要はなく、モデルにはまったくリンクされていません。

RORフォームフィールドで使用できる属性があるかどうかはわかりません。

現在、私はバニラフォームフィールドを使用しています。

答えて

1

FormTagHelper(​​)が参考になる場合があります。このヘルパーを使用すると、フォームの外にhtml入力を作成できます(この方法では、これらの入力フィールドの値はコントローラに送信されません)。

+0

感謝。update_attributesを使用するときは、このメソッドを呼び出すと、あなたはホワイトリストに希望のパラメータ名を渡し、通過することを可能にします、まさに私が探していたものです ために。 RORの代替:) – Rumpleteaser

1

HTMLは、送信から除外するすべてのフォーム要素に「無効」属性を提供します。これを使用するか、フォーム提出から属性を削除するjavascriptを使用して、事前提出チェックを行います。

0

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

関連する問題