Kullanıcıların profil sayfasında bir soru (kullanıcı modeline ek olarak, iç içe yanıtlı bir soru modeli var) oluşturmak için bir formum var. Kullanıcı profili sayfası /views/users/show.html.erb adresinden, question_controller.rb dosyasının oluşturma eylemine sunulur. Doğrulama yapmazsa, Rails varsayılanı formunu (kullanıcı için düzenleme formundaki geçersiz bilgilerle) oluşturmaktır. Ancak, kullanıcı profili sayfasından soru modeli için form gönderdiğim için, başarısız doğrulama sırasında ön doldurma yapılmıyor; Kullanıcı formdaki tüm bilgileri tekrar girmeye zorlanır. Bu bağlamda, kullanıcıların sunum sayfasında girilen bilgilerle doldurabilmeleri için kullanıcılara gösterme formunun bir yolu var mı?Başarısız doğrulama hakkında formu yeniden oluşturma
questions_controller
def create
@question = current_user.questions.build(params[:kestion])
if @question.save
redirect_to current_user, :notice => "Successfully created question."
else
###render :action => 'show'
redirect_to current_user
end
end
Güncelleme Ben oluşturmak yöntemle de
Redirect (: back), :notice => "something went wrong.try again"
sonuna değiştirdik Ama yine formu doldurmak için alamayan ve doğrulama hata iletileri değiller ya da, sadece flaş bildirimi gösteriyor.
Güncelleme kullanıcıların kumandanın gösterisi yöntemi
def show
@user = User.find(params[:id])
@question = Question.new
3.times {@question.answers.build}
end
/views/users/show.html.erb
<%= form_for @question do |f| %>
<% if @question.errors.any? %>
<h2><%= pluralize(@question.errors.count, "error") %> prohibited this question
from being saved: </h2>
<ul>
<% @question.errors.full_messages.each do |msg| %>
<li> <%= msg %></li>
<% end %>
</ul>
<% end %>
<p>
<%= f.label :content, "Question"%>
<%= f.text_area :content, :class => 'span4', :rows => 1 %>
</p>
<p>
<%= f.label :link, "QuoraLink" %>
<%= f.text_field :link, :class => 'span4', :rows => 1 %>
</p>
<%= f.fields_for :answers do |builder| %>
<p>
<%= render 'answer_fields', :f => builder %>
</p>
<% end %>
<p><%= link_to_add_fields "Add Answer", f, :answers %></p>
<p><%= f.submit %></p>
<% end %>
answer_fields (kullanıcı) ile birlikte yeni soru yaratır kısmi sorulara göre kısmi
'show' yöntemi, UsersController'ınızda nasıl görünüyor? Anladığım kadarıyla formu önceden dolduran yöntem budur. Ayrıca, görüşler/kullanıcılar/show.html. {Erb, haml} görünümü nasıl görünüyor? Parametreleri yol parametreleri üzerinden veya [] oturumundan geçirebilirsiniz, ancak muhtemelen burada bazı değişikliklere ihtiyacınız olacaktır. – moonfly
@moonFly, Kullanıcı denetleyicisinden gelen gösterme yöntemini 'onaylamalısınız' formunu önceden doldurması gerekiyorsa (yani istediğim şey), ancak şu anda bunu yapmıyor. OP'yi görüntülediğimi önerdiğiniz kodla güncelledim. Başvuruda bulunduğunuz iki yöntemden herhangi biriyle geçerli değilse, yukarıdaki kodu nasıl değiştirebileceğimi söyleyebilir misiniz? – Leahcim