0

I have a form with some fields in my rails 2 application and I want to prepopulate the value from what was entered before. The parameters values are in the url

here is the code for the form:

<% form_tag({:controller => "articles", :action => "search"}, :method => "get") do %>
    <%= label_tag("start_date") %>
    <%= text_field_tag("start_date","", :type => "date") %>

    <%= text_field_tag "username", "", :placeholder => "username" %>
    <%= text_field_tag "email", "",  :type => "email" %>

    <%= select_tag "status", options_for_select([["status", ""],"approved", "unchecked"])%>

    <%= submit_tag("Search") %>
  <% end %>

I have tried to use for instance @username = params[:username] in the controller but I still get an empty field

delpha
  • 931
  • 1
  • 8
  • 23

2 Answers2

2

Problem is you're providing empty content for the field:

<%= text_field_tag "username", "", :placeholder => "username" %>

Rails doesn't automatically takes instance variables based on the field name, so if your controller defines a @username variable, you have to explicitly use it:

<%= text_field_tag "username", @username, :placeholder => "username" %>
iMacTia
  • 671
  • 4
  • 8
0

I am not sure if it is working in Rails 2 but I would try to do something like this:

 <%= text_field_tag "username", :placeholder => @user.name %>

Of course, in the controller action that renders this view you need to provide @user

Flip
  • 6,233
  • 7
  • 46
  • 75