简体   繁体   中英

formtastic - how to prepopulate a string input with a value

I'm building an app, where users can give comments by just leaving their email to the comment.

I want them to be able to register directly from there, by a link with their email adress as a param
(like: <%= link_to register_path(:email => @comment.email %> ) - so there is no existing user record yet.
this should be done by applying a value to the form.input field via the :value option.

But the following code doesn't work!

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

I had a look inside the formtastic rdoc and inside my local gem but couldn't find any option for that.

Suggestions anyone?

Yup, you got the right answer all by yourself! Formtastic's rdoc is a mess, but we're working on it. Another option if you want this purely at a view level is to use the :input_html option, which gives you direct access to HTML attributes of the input tag:

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

sometimes the easiest things come to your mind by asking for them:

approach: do the job in the controller not the view!

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

sorry for bothering you!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM