2016-07-26 25 views
0

Ich verwende Rails 4.2.3. Ich habe dies in meinem Modell ...Wie kann ich ein Textfeld in Rails vorbelegen?

class User < ActiveRecord::Base 
    belongs_to :address 

Ich habe dies in meinem Controller

def edit 
    @user = current_user 
    puts "address; #{@user.address} city: #{@user.address.city}" 
    @default_country_selected = Country.find_by_iso('US') 
    end 

die

address; #<Address:0x007f7f99a8d390> city: calgary 

in meinem Log-out druckt. Dann meiner Ansicht nach auf die obige Steuerung entspricht, ich habe

<%= form_for(@user) do |f| %> 
    … 
    <%= f.fields_for :address do |addr| %> 
    <%= addr.label :address, "Home Town" %><br/> 
    <div class="field"><%= addr.text_field :city, placeholder: "City", :class => 'textField' %></div> 

, die das Textfeld als

macht
<input placeholder="City" class="textField" type="text" name="user[address][city]" id="user_address_city" /> 

aber wie man sehen kann, gibt es keine „value“ Attribut gerendert. Wie bekomme ich das Textfeld mit dem Wert der Adressstadt vorbelegt? In diesem Fall < "Calgary"?

+0

Wie wäre es damit: '<% = addr.text_field: city, placeholder:" Stadt ",: class => 'textField', Wert: addr.city%>'? – Thanh

Antwort

1

Das ist sehr einfach nur den Wert wie folgt zuweisen und es wird es vorher auffüllen.