小编Afo*_*umi的帖子

如何使用Django Web应用程序实现FirebaseDB

我正在尝试使用我的Django Web应用程序实现Firebase实时数据库.在使用Firebase正确设置配置后,我对数据如何从我的Django网站写入我的Firebase数据库而不是使用Sqlite或Postgres感到困惑.

settings.py,我需要将引擎设置为Firebase吗?我在这里完全糊涂了.我不想使用正常的ORM,如Sqlite,Postgres等.我希望我的应用程序使用Firebase.

我还需要了解Firebase的其他内容吗?

settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
Run Code Online (Sandbox Code Playgroud)

pyrebase_settings文件

import pyrebase

config = {
    "apiKey": "my_api_key_is_here",
    "authDomain": "my_auth_domain_is_here",
    "databaseURL": "my_firebase_database_url_is_here",
    "projectId": "my_firebase_project_id_is_here",
    "storageBucket": "my_firebase_storageBucket_is_here",
    "serviceAccount": "my_serviceAccount.json_file_path_is_here",
    "messagingSenderId": "messagingSenderId_is_here"
}

# initialize app with config
firebase = pyrebase.initialize_app(config)

# authenticate a user
auth = firebase.auth()
user = auth.sign_in_with_email_and_password("email@usedforauthentication.com", "FstrongPasswordHere")


db = firebase.database()
Run Code Online (Sandbox Code Playgroud)

django firebase firebase-realtime-database

12
推荐指数
2
解决办法
2万
查看次数

如何将符号转换为字符串(即去掉前导:) ruby​​ to_yaml

我正在尝试从我的 YAML 输出中删除前导:。这是代码以及我在下面所做的事情:

模型/attribution_channel.rb

DEFAULT_BONUS_CONFIG =  {
  sign_up: {
    currency: 'ngn',
    type: 'flat',
    amount: 1000
  },
  visit: {
    currency: 'ngn',
    type: 'flat',
    amount: 5
  }
}
Run Code Online (Sandbox Code Playgroud)

查看/form.slim.html

AttributionChannel::DEFAULT_BONUS_CONFIG.to_yaml
Run Code Online (Sandbox Code Playgroud)

输出:

输出

要从输出中删除键中的YAML 分隔符 ---和前导 : ,我所做的是:

AttributionChannel::DEFAULT_BONUS_CONFIG.to_yaml.gsub("---\n", '').sub(":", '')
Run Code Online (Sandbox Code Playgroud)

..但是该.sub(":", '')部分仅删除了:第一个领先的:

如何:从 YAML 输出中删除前导?有什么帮助值得赞赏吗?下面是我想要的:

sign_up:
  currency: ngn
  type: flat
  amount: 1000
visit:
  currency: ngn
  type: flat
  amount: 5
Run Code Online (Sandbox Code Playgroud)

ruby yaml ruby-on-rails ruby-on-rails-4

6
推荐指数
1
解决办法
1780
查看次数

类别,子类别和律师之间的关联

我有很多律师,类别和子类别.

提示(如果我的协会没问题,你可以有一个线索)

  1. 在类别表上,我不希望在类别表上看到引用子类别的列.
  2. 在子类别表上,我不希望在Subcategories表上看到引用类别的列.
  3. 并非所有类别都有子类别.即一些没有如图所示的子类别.
  4. 我有2个单独的表单创建类别和子类别.
  5. 我将category_id和subcategory_id添加为我的律师表中的外键.这样我就可以在创建时选择律师形式,律师将在图像中尽快选择类别或子类别.
  6. 另请注意:可以在任何时间,任何一天,对于没有子类别的类别创建子类别,以及在已经具有某些子类别的类别下的新子类别,并且律师将被置于其下.
  7. 图像是我目前正在进行的索引/主页的复制品,至少在上面的第6个版本之前的任何时间生效,我希望使用循环来实现此视图.

图解理解我想要做的事情:

我主页的图像说明

这是我在3个模型之间的关系

class Lawyer < ActiveRecord::Base
  belongs_to :category
  belongs_to :subcategory
end

class Category < ActiveRecord::Base
  has_many :lawyers
end

class Subcategory < ActiveRecord::Base
  #belongs_to :category #Do I want "category_id" in Subcategories Table?
  has_many :lawyers
end
Run Code Online (Sandbox Code Playgroud)

我对那3个型号的关联是否适合我提供的提示?这非常令人困惑.

ruby ruby-on-rails associations model-associations ruby-on-rails-4

3
推荐指数
1
解决办法
591
查看次数

Rails梅勒搞砸了

我用我的Ruby on Rails应用程序实现了一个RoR邮件程序,它运行良好.但令我惊讶的是,每次发送邮件时,我的数据库表中的其他属性都会填入我发送的电子邮件中,这是我不想要的.

要查看我的问题的图解视图,请参阅此Mailer预览图像:

在此输入图像描述

模型(job.rb)

class Job < ActiveRecord::Base
  def self.jobs_posted_12hrs_ago
    where.not('stripeEmail' => nil).where.not('payola_sale_guid' => nil).where('created_at > ?', Time.now - 12.hours)
  end
end
Run Code Online (Sandbox Code Playgroud)

应用程序/邮寄者/ job_notifier.rb

class JobNotifier < ApplicationMailer


  def send_post_email(job)
    @user = User.where(:email => true).all
    emails = @user.collect(&:email).join("#{';'}")
    @jobs = job
    @job = job
    mail(:to => emails, :bcc => User.pluck(:email).uniq, :subject => 'New job posted on FarFlungJobs')
  end

end
Run Code Online (Sandbox Code Playgroud)

电子邮件模板/视图(send_post_email.html.erb)

我确实迭代了我的范围并填充了Comapny名称,职位和日期.但是当预览/发送电子邮件时,数据库中的其他属性将被填充.

<!DOCTYPE html>
<html>
<head>
  <meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
</head>

<body>
  <div>
    <h3> Hi, new …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails-4

0
推荐指数
1
解决办法
23
查看次数