[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

[rails] newby question on validation

Matteo Corti

6/3/2005 5:14:00 PM

Hi,

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?

Many thanks,

Matteo
3 Answers

greg.kujawa

6/3/2005 8:15:00 PM

0

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:

<INPUT TYPE="TEXT" SIZE="5" MAXLENGTH="5"
NAME="thisControl[thisNumber]">

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?

Joe Van Dyk

6/3/2005 8:42:00 PM

0

On 6/3/05, Matteo Corti <corti@inf.ethz.ch> wrote:
> Hi,
>
> I am developing a small application with rails. I'll try to summarize my
> problem.

You'll probably have better luck getting answers from the Rails mailing list...


Matteo Corti

6/3/2005 9:31:00 PM

0

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:
>
><INPUT TYPE="TEXT" SIZE="5" MAXLENGTH="5"
> NAME="thisControl[thisNumber]">
>
> 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?

Many thanks for the help.

Matteo