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?