當我在create方法中輸入數據並且用戶數據無效時,用戶的輸入不會在render 'new'
之後保存。我想要保存無效的用戶輸入。有沒有人對我如何解決這個問題有任何想法?驗證失敗後保存用戶輸入
在一個側面說明,我的ContactForm對象未鏈接到任何一個數據庫,這就是爲什麼我不使用保存?
class ContactController < ApplicationController
def new
@contact_form = ContactForm.new
end
def create
@contact_form = ContactForm.new(params[:contact_form])
if @contact_form.valid? && verify_recaptcha(model: @contact_form , message: EBM::RECAPTCHA_ERROR)
redirect_to contact_create_path
else
render :action => 'new'
end
end
end
編輯:根據mind.blank的建議重構。雖然沒有解決問題。
EDIT2:添加視圖:
<div id="quote" class="hero-unit centerpiece">
<form action="/contact" method="post" class="form-horizontal">
<fieldset>
<!-- Form Name -->
<h1 class="form-header">Contact Us</h1>
<!-- Text input-->
<%= render 'shared/error', object: @contact_form %>
<div class="control-group">
<label class="control-label">Your Name</label>
<div class="controls">
<input id="name" name="contact_form[name]" type="text" placeholder="Your Name" class="input-xlarge" >
</div>
</div>
<!-- Text input-->
<div class="control-group">
<label class="control-label">Your Email</label>
<div class="controls">
<input id="email" name="contact_form[email]" type="text" placeholder="Your Email" class="input-xlarge" required="" >
</div>
</div>
<!-- Textarea -->
<div class="control-group">
<label class="control-label">Your Message</label>
<div class="controls">
<textarea id="Your Message" class="message-area" name="contact_form[user_message]" required=""></textarea>
</div>
</div>
<div class="recaptcha">
<%= recaptcha_tags %>
</div>
<%= submit_tag "Submit", class: "btn btn-large btn-primary" %>
</fieldset>
</form>
</div>
你能展示你的觀點嗎? – AlexBrand 2013-04-28 01:48:45
@alexBrand剛添加它。 – user886596 2013-04-28 01:50:54
您不使用rails helpers來創建表單。您的輸入字段基本上是硬編碼的,導軌無法填充輸入字段。 – AlexBrand 2013-04-28 01:52:25