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

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

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

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

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

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?