Adding a date to a date attribute in active record












0















I am trying to add a date of birth to each patient in my database and having issues adding a date to the dob attribute on each patient. When I add for ex. Patient.first(dob: "01/25/1990") I get an error reading no implicit conversion of Integer into Hash. Any ideas on how I would do so?



 create_table "patients", force: :cascade do |t|
t.string "first_name"
t.string "last_name"
t.integer "age"
t.date "dob"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end


When I seeded my database, my dob field was nil



I have also tried Patient.first(dob: Date.parse('31-12-2010')) and still get the same error.










share|improve this question

























  • @WaynePhipps I've actually tried that already doing Patient.first(dob: Date.parse('31-12-2010'))

    – Daniel Bailey
    Nov 20 '18 at 21:25
















0















I am trying to add a date of birth to each patient in my database and having issues adding a date to the dob attribute on each patient. When I add for ex. Patient.first(dob: "01/25/1990") I get an error reading no implicit conversion of Integer into Hash. Any ideas on how I would do so?



 create_table "patients", force: :cascade do |t|
t.string "first_name"
t.string "last_name"
t.integer "age"
t.date "dob"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end


When I seeded my database, my dob field was nil



I have also tried Patient.first(dob: Date.parse('31-12-2010')) and still get the same error.










share|improve this question

























  • @WaynePhipps I've actually tried that already doing Patient.first(dob: Date.parse('31-12-2010'))

    – Daniel Bailey
    Nov 20 '18 at 21:25














0












0








0








I am trying to add a date of birth to each patient in my database and having issues adding a date to the dob attribute on each patient. When I add for ex. Patient.first(dob: "01/25/1990") I get an error reading no implicit conversion of Integer into Hash. Any ideas on how I would do so?



 create_table "patients", force: :cascade do |t|
t.string "first_name"
t.string "last_name"
t.integer "age"
t.date "dob"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end


When I seeded my database, my dob field was nil



I have also tried Patient.first(dob: Date.parse('31-12-2010')) and still get the same error.










share|improve this question
















I am trying to add a date of birth to each patient in my database and having issues adding a date to the dob attribute on each patient. When I add for ex. Patient.first(dob: "01/25/1990") I get an error reading no implicit conversion of Integer into Hash. Any ideas on how I would do so?



 create_table "patients", force: :cascade do |t|
t.string "first_name"
t.string "last_name"
t.integer "age"
t.date "dob"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end


When I seeded my database, my dob field was nil



I have also tried Patient.first(dob: Date.parse('31-12-2010')) and still get the same error.







ruby-on-rails ruby rails-activerecord






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 20 '18 at 21:37









mu is too short

352k58694668




352k58694668










asked Nov 20 '18 at 21:21









Daniel BaileyDaniel Bailey

67110




67110













  • @WaynePhipps I've actually tried that already doing Patient.first(dob: Date.parse('31-12-2010'))

    – Daniel Bailey
    Nov 20 '18 at 21:25



















  • @WaynePhipps I've actually tried that already doing Patient.first(dob: Date.parse('31-12-2010'))

    – Daniel Bailey
    Nov 20 '18 at 21:25

















@WaynePhipps I've actually tried that already doing Patient.first(dob: Date.parse('31-12-2010'))

– Daniel Bailey
Nov 20 '18 at 21:25





@WaynePhipps I've actually tried that already doing Patient.first(dob: Date.parse('31-12-2010'))

– Daniel Bailey
Nov 20 '18 at 21:25












1 Answer
1






active

oldest

votes


















2














You have two problems:





  1. first doesn't take query arguments.

  2. Your date format is ambiguous.


The first finder method looks like:




first(limit = nil)

Find the first record (or first N records if a parameter is supplied). If no order is defined it will order by primary key.




You want to use find_by as your .where(...).first shortcut.



And to avoid ambiguity with your dates, you should use Date objects or ISO-8601 formatted strings (i.e. YYYY-MM-DD) inside the application and leave the supposedly "human friendly" formats for the very edges.



You want to say:



Patient.find_by(dob: '1990-01-25')





share|improve this answer
























  • Thanks, I got it to work. I was forgetting the update part. so Patient.first.update(dob: Date.parse('31-12-2010')) worked.

    – Daniel Bailey
    Nov 20 '18 at 21:43











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53401725%2fadding-a-date-to-a-date-attribute-in-active-record%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









2














You have two problems:





  1. first doesn't take query arguments.

  2. Your date format is ambiguous.


The first finder method looks like:




first(limit = nil)

Find the first record (or first N records if a parameter is supplied). If no order is defined it will order by primary key.




You want to use find_by as your .where(...).first shortcut.



And to avoid ambiguity with your dates, you should use Date objects or ISO-8601 formatted strings (i.e. YYYY-MM-DD) inside the application and leave the supposedly "human friendly" formats for the very edges.



You want to say:



Patient.find_by(dob: '1990-01-25')





share|improve this answer
























  • Thanks, I got it to work. I was forgetting the update part. so Patient.first.update(dob: Date.parse('31-12-2010')) worked.

    – Daniel Bailey
    Nov 20 '18 at 21:43
















2














You have two problems:





  1. first doesn't take query arguments.

  2. Your date format is ambiguous.


The first finder method looks like:




first(limit = nil)

Find the first record (or first N records if a parameter is supplied). If no order is defined it will order by primary key.




You want to use find_by as your .where(...).first shortcut.



And to avoid ambiguity with your dates, you should use Date objects or ISO-8601 formatted strings (i.e. YYYY-MM-DD) inside the application and leave the supposedly "human friendly" formats for the very edges.



You want to say:



Patient.find_by(dob: '1990-01-25')





share|improve this answer
























  • Thanks, I got it to work. I was forgetting the update part. so Patient.first.update(dob: Date.parse('31-12-2010')) worked.

    – Daniel Bailey
    Nov 20 '18 at 21:43














2












2








2







You have two problems:





  1. first doesn't take query arguments.

  2. Your date format is ambiguous.


The first finder method looks like:




first(limit = nil)

Find the first record (or first N records if a parameter is supplied). If no order is defined it will order by primary key.




You want to use find_by as your .where(...).first shortcut.



And to avoid ambiguity with your dates, you should use Date objects or ISO-8601 formatted strings (i.e. YYYY-MM-DD) inside the application and leave the supposedly "human friendly" formats for the very edges.



You want to say:



Patient.find_by(dob: '1990-01-25')





share|improve this answer













You have two problems:





  1. first doesn't take query arguments.

  2. Your date format is ambiguous.


The first finder method looks like:




first(limit = nil)

Find the first record (or first N records if a parameter is supplied). If no order is defined it will order by primary key.




You want to use find_by as your .where(...).first shortcut.



And to avoid ambiguity with your dates, you should use Date objects or ISO-8601 formatted strings (i.e. YYYY-MM-DD) inside the application and leave the supposedly "human friendly" formats for the very edges.



You want to say:



Patient.find_by(dob: '1990-01-25')






share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 20 '18 at 21:37









mu is too shortmu is too short

352k58694668




352k58694668













  • Thanks, I got it to work. I was forgetting the update part. so Patient.first.update(dob: Date.parse('31-12-2010')) worked.

    – Daniel Bailey
    Nov 20 '18 at 21:43



















  • Thanks, I got it to work. I was forgetting the update part. so Patient.first.update(dob: Date.parse('31-12-2010')) worked.

    – Daniel Bailey
    Nov 20 '18 at 21:43

















Thanks, I got it to work. I was forgetting the update part. so Patient.first.update(dob: Date.parse('31-12-2010')) worked.

– Daniel Bailey
Nov 20 '18 at 21:43





Thanks, I got it to work. I was forgetting the update part. so Patient.first.update(dob: Date.parse('31-12-2010')) worked.

– Daniel Bailey
Nov 20 '18 at 21:43




















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53401725%2fadding-a-date-to-a-date-attribute-in-active-record%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

How to change which sound is reproduced for terminal bell?

Can I use Tabulator js library in my java Spring + Thymeleaf project?

Title Spacing in Bjornstrup Chapter, Removing Chapter Number From Contents