J'ai créé un échafaudage de base pour un modèle Foo avec une seule propriété - bar: StringNoMethodError en échafaudage de base View?
foos/new.html.erb:
<h1>New foo</h1>
<% form_for(@foo) do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :bar %><br />
<%= f.text_field :bar %>
</p>
<p>
<%= f.submit 'Create' %>
</p>
<% end %>
<%= link_to 'Back', foos_path %>
Mais je reçois un NoMethodError pour mon « bar 'propriété:
NoMethodError in Foos#new
Showing app/views/foos/new.html.erb where line #8 raised:
undefined method `bar' for #<Foo id: nil, created_at: nil, updated_at: nil>
Extracted source (around line #8):
5:
6: <p>
7: <%= f.label :bar %><br />
8: <%= f.text_field :bar %>
9: </p>
10: <p>
11: <%= f.submit 'Create' %>
Comme vous pouvez le voir, bar la seule propriété dans mon modèle Foo:
class CreateFoos < ActiveRecord::Migration
def self.up
create_table :foos do |t|
t.String :bar
t.timestamps
end
end
def self.down
drop_table :foos
end
end
Et la nouvelle méthode dans le foos_controller est de l'échafaudage par défaut:
def new
@foo = Foo.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @foo }
end
end
Toutes les idées seraient appréciées
J'ai essayé cela mais quand j'ai vérifié la base de données il n'y avait aucune colonne de barre. Pensez que je vais supprimer ce projet et recommencer. – toma