Rails 遭遇 Error loading ‘sqlite3’ Active Record adapter

很久没写过 Rails 了,最近也更新了 5.2.2 ,于是决定再看看。

使用 rails new 生成了一个新的项目,却未能成功跑起来。报错 Error loading ‘sqlite3’ Active Record adapter

搜索后得知,原来是 新版的 Rails 项目中并未为 SQlite 设置版本导致的。

因此,你只需要将 gemfile 中的

gem 'sqlite3'
Code language: JavaScript (javascript)

修改为

gem 'sqlite3', '~> 1.3.6'
Code language: JavaScript (javascript)

重新 bundle install 即可。

《惊奇队长》观后感

之前立了 Flag,要努力完成,于是就去看电影了。这一次看的是《惊奇队长》。

这部电影给我的不一样的感受:

  • 有不少中国的元素(?)比如配乐,不过也可能是西洋管弦乐,反正是场面宏大。莫名喜感。
  • 里面有一些梗似乎抄袭了前两年很火的日漫《寄生兽》
  • 有点主旋律的感觉,女主人公突然就励志了。

一些感想

  • 战争需要的是英雄、而不是武器
  • 武器只能让战争恶化

这算是我看过的第一部漫威宇宙的电影了。

WordPress 主题开发时应备的辅助函数

在 WordPress 主题开发时,经常会用到 三目运算符 来判断 Options Framework 的返回值。因此,可以将其封装为一个函数进行调用。


function hf_config_echo($name, $default = '')
{
    $value = of_get_options($name);
    if ($value) {
        echo $value;
    } else {
        echo $default;
    }
}
Code language: PHP (php)

IRC 漫游

由于需要和 Rust 嵌入式开发团队沟通,因此,需要研究一下 IRC。

在这里记录一下 IRC 的用法

IRC 注册用户

IRC 一般来说,是不需要注册用户的,你登陆上去以后,使用 /nick xxxx 来设置 nickname 即可。

不过,你也可以注册,只需要执行如下命令

/msg NickServ REGISTER 密码 电子邮件地址

稍后,你会收到一封邮件,邮件内会包含一个代码,将其发送到你的 IRC 频道即可。

afou2

IRC 查看频道列表

在 IRC 中查看频道列表只需要执行如下命令

/list
Code language: PHP (php)

一种好的付费软件订阅模式

我比较喜欢 MoneyWiz 的付费模式,对开发者友好,对消费者也很友好:

  1. 提供订阅版本:订阅版本可以免费使用,只是有广告,付费可以去广告,并使用一些高级特性。
  2. 提供买断版本:买断版本可以给那些希望一次性付费的用户。

开发阶段仅提供订阅版本;大版本特性开发完成后,提供买断的版本。用户可以根据自己的需要进行选择。

Options Framework 如何将菜单移动到顶级菜单?

打开 inc/includes/class-options-framework-admin.php 文件,然后知道其中的 add_custom_options_page 方法,将其代码替换为如下代码

public function add_custom_options_page()
    {
        $menu = $this->menu_settings();
        switch ($menu['mode']) {
            case 'menu':
                // http://codex.wordpress.org/Function_Reference/add_menu_page
                $this->options_screen = add_menu_page(
                    $menu['page_title'],
                    $menu['menu_title'],
                    $menu['capability'],
                    $menu['menu_slug'],
                    array($this, 'options_page'),
                    $menu['icon_url'],
                    $menu['position']
                );
                break;
            default:
                // http://codex.wordpress.org/Function_Reference/add_submenu_page
                $this->options_screen = add_submenu_page(
                    $menu['parent_slug'],
                    $menu['page_title'],
                    $menu['menu_title'],
                    $menu['capability'],
                    $menu['menu_slug'],
                    array($this, 'options_page'));
                break;
        }
    }
Code language: PHP (php)

添加完成后,在你的主题的 functions.php 文件中添加如下代码:

function harvardchina_options_menu_filter($menu)
{
    $menu['mode'] = 'menu';
    $menu['page_title'] = 'Harvard 主题设置';
    $menu['menu_title'] = 'Harvard 主题设置';
    $menu['menu_slug'] = 'harvardchina-options';
    return $menu;
}
add_filter('optionsframework_menu', 'harvardchina_options_menu_filter');
Code language: PHP (php)

就可以实现将主题配置移动到顶级菜单。

reference:

https://gist.github.com/devinsays/884d6abe92857a329d99

如何自定义 WordPress 后台的 Admin

WordPress 的后台有非常多的东西,其中的很多东西都并非我们想要的,时间长了,看起来特别的头疼,所以,不妨写一些代码,来精简你的后台。

你所需要做的很简单,就是在你的主题的 functions.php 文件中添加如下代码。

function ixiqin_com_remove_menu_item()
{
    // 移除菜单项目的代码
}
add_action('admin_menu', 'ixiqin_com_remove_menu_item');
Code language: JavaScript (javascript)

其中,移除菜单项目的代码主要有以下两个函数

  • remove_menu_page('upload.php') 这个是移除一级菜单的,比如这个移除的是媒体库的菜单项目。
  • remove_submenu_page('options-general.php','options-reading.php')这个是移除设置中,阅读二级菜单的。

这两个函数的参数都是文件路径,这个路径你可以在 URL 栏中找到

dil27