2010-01-11 9 views
28

ile nasıl önceden doldurulur? Kullanıcıların yorumlarını e-postaya bırakarak yorum yapabileceği bir uygulama yapıyorum.formtastic - bir dize girdisi değeri

Doğrudan oradan, bir e-posta adresi olan bir bağlantı ile
(<%= link_to register_path(:email => @comment.email %> gibi) kayıtlarını yapabilmelerini istiyorum - böylece mevcut kullanıcı kaydı yok.
Bu, :value seçeneği aracılığıyla form.input alanına bir değer uygulayarak yapılmalıdır.

Ancak aşağıdaki kod çalışmıyor!

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

benim yerel taş formtastic rdoc içinde ve içine bir göz vardı ama bunun için herhangi bir seçenek bulamadık.

Önerileriniz var mı?

cevap

66

Evet, tek başına doğru cevabı aldınız! Formtastic'in rdocu bir karmaşa, ama üzerinde çalışıyoruz.

f.input :email, :input_html => { :value => params[:email] } 
+0

+1 bu kabul edilen cevaptan daha iyidir. Giriş değerine bir görünüm yardımcı yöntemi uygulamak gibi bir şey yapmak istiyorsanız, bu kod denetleyiciye değil görünümüne aittir. – jdl

+0

Bu iş yaptı, ama benzeri bir şeye sahip olmamalıyız: value_method. I.E. f.input: my_date,: value_method =>: biçimlendirilmiş –

+0

Abe, GH ile ilgili bir sorun eklemekte çekinmeyin. –

9

bazen en kolay şey onlar için sorarak akla gelen:

yaklaşım: denetleyici değil görünümünde bir iş yapmak!

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

Rahatsız ettiğim için özür dilerim!

+2

Veya sadece: tamamen bir görünüm düzeyinde bu isterseniz bir başka seçenek size giriş etiketinin HTML özelliklerine doğrudan erişim sağlayan :input_html seçeneğini kullanmaktır '@user = User.new (: E-posta => params [: email]) 'nil ise, sonuç aynıdır. @user başlatıcısının e-posta ayarlaması dışında. – Leito