Я создал очень простое приложение на Rails 3.1 с такими базовыми элементами, как:
My PostsController.rb имеет new
, index
, create
методы:
def index
@posts = Post.all
render :index
end
def new
@post = Post.new
render :new
end
def create
@post = Post.new(params[:post])
if @post.save
render :index
else
render :new
end
end
Форма new.html.erb :
<%= form_for @post do |f| %>
<%= f.error_messages%>
<p>
<%= f.label :name %><br />
<%= f.text_field :name %>
</p>
<p>
<%= f.label :address %><br />
<%= f.text_field :address, :size=>60 %>
</p>
<p>
<%= f.submit 'Create' %>
</p>
<% end %>
представление индекса ( index.html.erb ):
<table>
<% @posts.each do |post| %>
<tr>
...
</tr>
<% end %>
</table>
my rout.rb определил:
resources :posts
root :to => 'post#new'
Со всем вышеизложенным, когда отправляется новая форма, метод create
в PostController *Будет вызываться 1028 *, затем внутри метода create
, если новое сообщение успешно сохранено, оно будет render :index
, то есть для отображения index.html.erb , все в порядкеточка.но я получил ошибку в index.html.erb view:
Он жалуется, что @ posts в <% @posts.each do |post| %>
равен nil почему ???
------------- Я тоже пробовал -------------------------
Я пытался использовать redirect_to posts_path
в create
методе, затем я получил неопределенный метод `posts_path_url ' Ошибка
Я такжепопытался использовать redirect_to :index
в create
методе, затем я получил неопределенный метод `index_url ' ошибка