0

私はやって学ぶことを試みており、助けが必要です。

したがって、formtasticはbelongs_toアソシエーション(Postbelongs_to:authorなど)を処理して、親モデルから選択したラジオ入力の選択またはセットをレンダリングできます。

私がやろうとしているのは、作成フォームで作成者を選択せず​​に投稿を作成することです。

非表示のフォームフィールドを介して作成者IDを設定したいのですが、これを試してみると

 <%= f.input :author, :as => :hidden, :value => '33' %>

私は初期化されていない定数の作成者を取得し、動作するのに失敗した他のさまざまな方法を試しました。

私が得た最も近いものは、次のように選択の選択肢をカスタマイズし、選択を非表示にすることです。

<%= f.input :author, :as => :select, :collection => ["33"], :input_html => { :style => 'visibility: hidden' } %>

しかし、上記は選択を非表示にして機能しますが、表示したくない作成者のフォームラベルが表示されます

これは、Imが達成しようとしていることがまだ不明な場合に、私のシナリオをよりよく説明するための例です。

著者のリストページがあり、著者として自分の名前をクリックして、さまざまなことを管理したり投稿を作成したりできる領域に入ると想像してください。

問題: [投稿の作成]をクリックしてフォームが表示される場合、システムに自分の投稿を認識させたいので、作成している投稿が自分のものであることをアプリに通知するために、フィールドの1つから自分の名前を選択する必要はありません。あなたはあなたに属する設定エリアにいるからです。

非表示のフォームフィールドを使用して作成者IDを設定し、ユーザーがフォームを送信したときに投稿が正しい関連付けで保存されるようにして、これを実行しようとしています。

誰かがこれを行う方法の例を私に提供できますか?学習者のImとして、これにアプローチするためのより良い方法があるかもしれないので、誰かがアドバイスして、いくつかの良い例を教えてください。

4

1 に答える 1

0

非表示のフォームフィールドに入力しないでください。非表示のフォームフィールドは引き続きユーザーが変更でき、最終的にはユーザーが他の作成者による投稿を作成できるようになります。

これを行う正しい方法@post.author = current_userは、PostsControllerの作成アクションで割り当てることです。

于 2012-06-16T13:35:47.317 に答える