I am developing a small application with rails. I'll try to summarize my
problem.
I have an HTML table displaying the content of a database table
I want to filter the rows of my table by display just a subset of them (as
an example let's say that every record has a numberic field called number
and that I want to display only the records with a number field lower than a
user supplied value).
For this reason I have a web form with a text field asking for the number.
My problem comes with the validation of the user input since the values of
this form (as the number in the example) are not related to any table in the
database and as I have seen all the validation methods are part of
ActiveRecord:Base.
Should I check every value manually or is there a way to validate a form
input when the form data is not related to a database table?
if @params['a']['b'] != nil and @params['a']['b'].to_i < 100
# do something
but I have problems when the field is left empty (i.e. empty string). The
param is not null and it seems to pass even the second test since an empty
string is converted to 0. Any suggestion on how I could check if there is a
valid integer?
Many thanks for the help.
Matteo
···
On 2005-06-03, gregarican <greg.kujawa@gmail.com> wrote:
You should be able to access this text field's value by referring to @param. For example, here's a text input field that would appear in an
HTML form:
You could access the value of this text field using the following in
your accompanying controller.rb file:
retrievedValue = @params['thisControl']['thisNumber']
render_text "The text field's value as entered is #{retrievedValue}..."
You could validate the value using conditional statements of the common
variety:
render_text "The value is too large" if retrievedValue.to_i > 100
Does this make sense?
Yes I was trying something like that:
if @params['a']['b'] != nil and @params['a']['b'].to_i < 100
# do something
but I have problems when the field is left empty (i.e. empty string). The
param is not null and it seems to pass even the second test since an empty
string is converted to 0. Any suggestion on how I could check if there is a
valid integer?
Does this work?
p = @params['a']['b']
if p and not p.empty? and p.to_i < 100
Many thanks for the help.
Matteo
E
···
Le 3/6/2005, "Matteo Corti" <corti@inf.ethz.ch> a écrit:
On 2005-06-03, gregarican <greg.kujawa@gmail.com> wrote: