web-dev-qa-db-ja.com

formtastic-文字列入力に値を事前入力する方法

私は、ユーザーがコメントにメールを残すだけでコメントを投稿できるアプリを作成しています。

メールアドレスをパラメータとしてリンクすることで、そこから直接登録できるようにしたいと思います。
(like:<%= link_to register_path(:email => @comment.email %>)-したがって、既存のユーザーレコードはまだありません。
これは、form.inputオプションを介して:valueフィールドに値を適用することによって実行する必要があります。

しかし、次のコードは機能しません!

<%- if params[:email] -%>
  <%= f.input :email, :required => true, :value => params[:email] %>
<%- else -%>
  <%= f.input :email, :required => true %> 
<%- end -%>

formtastic rdoc とローカルgemの内部を調べましたが、そのためのオプションが見つかりませんでした。

誰か提案?

30
ernd enson

うん、あなたはすべて自分で正しい答えを得ました! Formtasticのrdocはめちゃくちゃですが、現在取り組んでいます。これを純粋にビューレベルで必要とする場合の別のオプションは、:input_htmlオプションを使用することです。これにより、入力タグのHTML属性に直接アクセスできます。

f.input :email, :input_html => { :value => params[:email] }
70
Justin French

時々、最も簡単なことが頭に浮かぶことがあります。

アプローチ:ビューではなくコントローラーでジョブを実行してください!

if params[:email]
  @user = User.new(:email => params[:email])
else
  @user = User.new
end

お邪魔になってすみません!

10
ernd enson