我在驗證時遇到了一些問題。我試圖驗證不屬於數據庫的params [:search]和params [:miles]。到目前爲止,我已經創建了一個無表模型,但仍然需要一些幫助來找出我的代碼出了什麼問題。感謝你的幫助傢伙。在軌道上驗證搜索表單
user_controller.rb
class UsersController < ApplicationController
def index
@search = Search.new(search: params[:search], miles: params[:miles])
if params[:search] && params[:miles].present?
@users = User.near(params[:search], params[:miles], units: :mi)
elsif params[:search].present?
@users = User.near(params[:search], 10, units: :mi)
else
@users = User.all
end
index.html.erb
<%= form_for @search, url: users_path, method: :get do |f| %>
<% if @search.errors.any? %>
<h2> Errors: </h2>
<ul>
<% @search.errors.full_messages do |message| %>
<li><%= message %></li>
<% end %>
</ul>
<% end %>
<%= f.label :miles, params[:miles] %>
<%= f.text_field :miles %>
<%= f.label :search, params[:search] %>
<%= f.text_field :search %> </br >
<%= f.submit "Search" %>
<% end %>
search.rb模型
class Search
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
attr_accessor :search
attr_accessor :miles
validates_presence_of :search
validates :miles, inclusion: { in: 0..9 }
end
您的代碼在哪裏失敗?搜索錯誤沒有顯示?你有沒有遇到某種錯誤? – Roko
由於您沒有提及您的錯誤,因此很難理解正在發生的事情。 – Roger