Вот совок: я создал тестовое приложение, которое позволяет пользователям создавать идеи, а затем добавлять «пузыри» к этим идеям.В настоящее время пузырь - это просто текст.Я успешно связал пузыри с идеями.Кроме того, когда пользователь просматривает идею, он перечисляет все пузырьки, связанные с этой идеей.Пользователь может даже удалить пузырь для данной идеи.
Моя проблема заключается в редактировании пузырьков.Когда пользователь просматривает идею, он видит содержание идеи, а также пузырьки для этой идеи.В результате я установил все свои элементы управления пузырями (редактирование и удаление) в представлении "показать" идеи.Мой код для редактирования пузыря для идеи - <%= link_to 'Edit Bubble', edit_idea_bubble_path %>
.Я запустил rake routes
, чтобы найти правильный путь для редактирования пузырьков, и это было в списке.
Вот моя ошибка: No route matches {:action=>"edit", :controller=>"bubbles"}
В моем контроллере пузырьков у меня есть:
def edit
@idea = Idea.find(params[:idea_id])
@bubble = @idea.bubbles.find(params[:id])
end
def update
@idea = Idea.find(params[:idea_id])
@bubble = @idea.bubbles.find(params[:id])
respond_to do |format|
if @bubble.update_attributes(params[:bubble])
format.html { redirect_to(@bubble,
:notice => 'Bubble was successfully updated.') }
format.xml { head :ok }
else
format.html { render :action => "Edit" }
format.xml { render :xml => @bubble.errors,
:status => :unprocessable_entity }
end
end
end
Чтобы сделать шаг вперед, в моем routes.rb
есть следующееfile
resources :ideas do
resources :bubbles
end
Пока что все работает, кроме случаев, когда я пытаюсь редактировать пузырь.
Мне бы хотелось получить руководство.
Спасибо!
Вот мой show.html.erb
файл для идей:
<h2>Bubbles</h2>
<% @idea.bubbles.each do |bubble| %>
<p>
<b>Bubble:</b>
<%= bubble.description %>
</p>
<p>
<%= link_to 'Edit Bubble', edit_idea_bubble_path (@idea) %>
</p>
<tb />
<p>
<%= link_to 'Delete Bubble', [bubble.idea, bubble],
:confirm => 'Are you sure you want to delete this bubble?',
:method => :delete %>
</p>
<% end %>
<h2>Add a bubble:</h2>
<%= form_for([@idea, @idea.bubbles.build]) do |f| %>
<div class="field">
<%= f.label :description %><br />
<%= f.text_area :description %>
</div>
<div class="actions">
<%= f.submit %> </div><% end %>
После edit_idea_bubble_path (@idea)
вот файл edit.html.erb
для Bubbles:
<%= render 'form' %>
<%= link_to 'Back to Ideas', ideas_path %>
И, наконец, мой _form.html.erb
файл для Bubbles: вот в чем проблема, я полагаю
<% form_for([@idea, @idea.bubbles.build]) do |f| %>
<%= f.error_messages %>
<div class="field">
<%= f.label :description %><br />
<%= f.text_area :description %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>