2016-01-20 25 views
2

我有一個表單,我已經做了一些必要的輸入。提交表單後,該值將被髮送到API。我知道驗證被放入模型文件中,但由於我沒有數據庫,我如何使用rails驗證?做表單驗證,不使用數據庫

現在我正在使用if else驗證控制器內部的代碼。

if !params[:groups][:name].blank? && !params[:groups][:make].blank? && !params[:groups][:model].blank? && !params[:groups][:firmware].blank? 

這樣做的工作,但它不是很優雅。

+0

是否使用導軌4? – Jenorish

+0

是的,我正在使用rails 4 –

回答

8

看一下ActiveModel,它可以讓你在沒有數據庫的情況下進行「模擬事物」。有一定的侷限性,使我到底要不要使用它(我認爲有關協會),但簡單的東西這是偉大的(和它的的ActiveRecord的是如何工作的一個組成部分。從文檔

示例代碼

class Person 
    include ActiveModel::Model 
    attr_accessor :name, :age 
    validates :name, :age, presence: true 
end 
+1

希望你不要介意,我加了一個驗證程序 –

+0

如果這個值如果來自url?我想它以同樣的方式如上在我控制我有 'G = Person.new AP g.error ' 我有一個空的哈希值。 –

+0

來自url的值就像'params [:gs_data_source] [:name]' –

1

這是很容易在你需要的表單輸入字段,添加required: true例如:

<%= form.for @something do |f| %> 
    <%= f.text_field :title, placeholder: 'Title', required: true %> 
<% end %> 

用戶得到一個錯誤,如果需要的字段沒有填寫correctlty

這是你的意思嗎?

賈斯汀

編輯

我想我會看看使用寶石 client_side_validations

讓我們知道你如何去

+0

是的,我知道這一點。我正在嘗試做服務器端驗證。 –

+0

這是一個偉大的寶石。我會看看它。 –