How to define virtual attribute for date_select drop menu using active model

Hi All,

I am using active model for payment process in my application , i am not
able to add field for date field, since it throws error as below
undefined
method `card_expiration_date(3i)='
.

*In model:

  • include ActiveModel::Validations
    include ActiveModel::Conversion
    extend ActiveModel::Naming*

attr_accessor: card_expiration_date
In view:

<%=f.date_select :card_expiration_date, :add_month_numbers =>
false,:discard_day => true, :start_year => (Date.today.year-10),
:end_year
=> (Date.today.year+10),:order=>[ :month,:year] %>

Any help would be appreciated.
regards,
Loganathan
ViewMe http://vizualize.me/loganathan

On 14 August 2012 07:50, Loganathan S. [email protected]
wrote:

attr_accessor: card_expiration_date

What is the purpose of the line above? Check the docs for
attr_accessor to see what it does.

Colin

I thought it would create getter and setter methods for
“card_expiration_date” and the active model library would do the
rest(such
as creating virtual attributes card_expiration_date(1i),
card_expiration_date(2li),card_expiration_date(3li) for date time
attribute(
card_expiration_date), let me know if I am wrong.

regards,
Loganathan
ViewMe http://vizualize.me/loganathan

On 14 August 2012 08:44, Loganathan S. [email protected]
wrote:

I thought it would create getter and setter methods for
“card_expiration_date” and the active model library would do the rest(such
as creating virtual attributes
card_expiration_date(1i),card_expiration_date(2li),card_expiration_date(3li)
for date time attribute(card_expiration_date), let me know if I am wrong.

Please don’t top post, it makes it difficult to follow the thread.
Insert your reply inline in the previous message. Thanks.

You don’t need to specify att_accessor for fields in the database,
ActiveRecord will supply them automatically. By providing them
yourself you have disabled the automatic ones.

I guess you are a beginner with Rails so I suggest that you work
through some tutorials to understand the basics. railstutorial.org is
good and is free to use online.

Colin

I have never done this. Just trying to help.

I think the problem you’re having is that your field doesn’t have a date
compatible value. If you check it’s class it might be NilClass. Since
the
fields does not belong to a table date_select probably has no idea what
to
do with it because it doesn’t have a ‘type’. Have you tried to give the
field a Date compatible value before your view is executed, just to try
if
the view works? Also, maybe type_cast (in
ActiveRecord::ConnectionAdapters::Quoting: http://api.rubyonrails.org/
) would help?

My model* doesn’t use Activerecord* ORM, I need to do validation on the
table less model, so I am using the Activemodel library, also I hope the
virtual field are needs to be mentioned as “attr_accessor” and I am
sorry
to mention that the model is table less in previous mail, since I
thought
people will understand when I say Activemodel.

regards,
Loganathan
ViewMe http://vizualize.me/loganathan