내가 실패해야하는 양식에 데이터를 입력하면 오류가 발생합니다. 아래의 제 모델에 따라 데이터를 az, AZ, 0-9 및 공백의 조합으로 작성해야하며 양식을 쓰레기처럼 채우는 것이 좋습니다.) (&^%^& (* & %^& * 심지어 빈 필드를 제출 *, 나는 오류가있을 예상이 경우,이없는 Ruby on Rails 4에서 ActiveModel로 검증 겉으로보기에는 작동하지 않는다
여기 모델의 두드러진 부분 :..class Numerology
include ActiveModel::Model
attr_accessor :phrase
VALID_PHRASE_REGEX = /\A[a-zA-Z0-9\s]+\z/
validates :phrase, presence: true, length: { minimum: 1 },
format: { with: VALID_PHRASE_REGEX }
여기 컨트롤러의 ... 내가 원하는 것은 폼에 잘못된 입력을 제공 할 때 어떤 에러가 발생하더라도 인덱스 (폼이있는 페이지)로 돌아가는 것입니다. 여기에 올바른 방향으로 가고 있지만, 나는 어떤 오류도 전혀 발생시키지 않는 것 같기 때문에 이것이 2 차 질문이 될 수 있다고 생각한다 (물론 @ numerology.errors.any? 거짓 일 것이다).
class NumerologiesController < ApplicationController
before_filter :authenticate_user!
respond_to :html
def index
@numerology = Numerology.new
end
def create
@numerology = Numerology.new(params[:numerology])
if @numerology.errors.any?
render :index
else
@numresults = Numerology.analysis(params[:numerology][:phrase])
end
end
end
그리고 마지막으로, 여기에 다음 뷰, 최초의 인덱스와는 만들기 :
인덱스 페이지 :
<div class="center jumbotron">
<h1>Numerology Analysis Module</h1>
<br>
<%= bootstrap_form_for(@numerology, layout: :horizontal, label_col: "col-sm-4", control_col: "col-sm-6") do |f| %>
<p> Enter word or phrase to be analyzed in the field below (Required).</p>
<%= @numerology.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
<%= f.text_field :phrase, label: "Word or Phrase: " %>
<br><br>
<%= f.submit "Perform Numerological Analysis" %>
<% end %>
<br><br>
<%= image_tag("SMILE.jpg", alt: "Smiley Face") %>
</div>
만들기 페이지 :
<div class="center jumbotron">
<h1>Numerological Analysis Report</h1>
<div class="numreport">
<table class="numtable">
<% @numresults.each do |line| %>
<% if !line.nil? %>
<tr>
<td><%= "#{line}" %></td>
</tr>
<% end %>
<% end -%>
</table>
</div>
<%= link_to "Perform Another Numerological Analysis - Click Here", numerologies_path %>
<br><br><br>
<%= image_tag("SMILE.jpg", alt: "Smiley Face") %>
</div>
그래서, 내가 뭘 잘못하고 있는지 누구라도 알 수 있니? 시도 할 다른 것들을 제안하시오. 감사!
아무것도 분명하게 밝혀지지 않습니다. 나는 이것을 시도하는 것이 좋습니다 : 1)'레일 콘솔을 실행'2)'n = Numerology.new (: phrase =>) (&^%^& (* & %^& ** ")'3)'n.valid ?) 4)'puts n.errors.inspect' 5) 출력을 복사하고 질문을 편집하고 입력하십시오. (오류가 발생하지 않는 한 그렇게하지 않는 한). (참고 : 레일 주변 장치가 더 빨리 돌아갈 수 있습니다. 또한 컨트롤러가 오류를 반환하는 방법에있어 유효성 검사가 * 실제로 작동하는지 * 잘못된지를 확인할 수 있습니다 *) –
솔루션을 켭니다 나는 유효하지 않았던가? 또는 유효하지 않습니까? 어디서나, 그리고 한번 내가 그것을 한 모든 일을 시작했다. 응답 해 주시고 콘솔 사용법을 지적 해 주셔서 감사합니다. 앞으로도 계속해 나갈 것입니다. –