小编Man*_*shh的帖子

Rails Webpacker或Vue-CLI?

我正在构建单页(Web)应用程序.我对Rails v5.0非常感兴趣,特别是它的内置API功能.

在过去,我已经构建了JavaScript前端Vue.js,通常使用提供的模板Vue-CLI project.这允许Vue component-based基本上在任何地方部署静态站点.这很棒.

现在,Rails 5.1有一些内置的Webpack和Yarn功能看起来非常引人注目.我不知道如何继续我的新申请.

我的问题:

  • 使用Rails v5.1中提供的Webpacker扩展,将Webpack和Vue集成到Rails中的优缺点是什么?我打算部署到Heroku.
  • 另一方面,在后端使用Rails API-only模式的优缺点是什么,并将基于Vue/Webpack的前端保存在自己的目录中?我将所有内容保存在同一个存储库中,通过Heroku部署后端,并通过像Netlify这样的静态主机部署前端.
  • 哪种方法会有更多的认知开销或技术复杂性?

在过去的几天里,我一直在四处寻找,而且我没有在网上找到关于此的简明信息.人们似乎对Rails开发环境的自动重新加载功能感兴趣,但我已经使用Vue-CLI免费获得了这些功能.

据我所知,这些是将它们分开的原因:

  • 在任何地方部署前端都非常简单.
  • Rails的Webpacker模式非常新,目前还没有很多教程或指南,特别是关于集成测试.将事物分开意味着我现有的测试设备仍应适用.

以下是将两个部分集成在一起的一些优点:

  • 如果有必要,可以在前端使用静态资产,也可以在将来使用服务器生成的页面.
  • 购买"Rails方式",Rails团队隐含的未来维护.
  • JS Frontend不需要单独托管.
  • 不需要担心CORS(?)

这两种方法还有哪些具体的好处?

ruby-on-rails single-page-application rails-api webpack vue.js

8
推荐指数
1
解决办法
982
查看次数

使用单引号的转义将活动记录对象解析为json(撇号)

我试图解析与json的rails活动记录关系.

jQuery('.user_form').data('mydata', '<%= raw User.all.to_json %>');
var myPersonalData = JSON.parse(jQuery('.user_form').data('mydata'));
Run Code Online (Sandbox Code Playgroud)

这是我的rails对象

'"[{\"id\":1,\"email\":\"1@2.com\",\"created_at\":\"2016-02-24T12:39:29.184Z\",\"updated_at\":\"2016-02-24T12:39:29.184Z\",\"username\":\"xyz's\",\"skypeid\":null},{\"id\":2,\"email\":\"3@2.com\",\"created_at\":\"2016-02-24T12:39:41.455Z\",\"updated_at\":\"2016-02-24T12:39:41.455Z\",\"username\":\"abs's\",\"skypeid\":null}]"'
Run Code Online (Sandbox Code Playgroud)

这个问题是在用户名列中,值包含"'"(撇号),它打破了单引号和双引号的链,因此在从javascript解析它时会抛出错误.

SyntaxError: missing ) after argument list path/to/file:linenumber
Run Code Online (Sandbox Code Playgroud)

这个问题是'<%= raw User.all.to_json%>'它被转换为

' "object_attribut\": \" value_with'apostrophe" '
Run Code Online (Sandbox Code Playgroud)

因此,'逃脱之后的部分.

任何帮助表示赞赏.提前致谢.

javascript json ruby-on-rails

2
推荐指数
1
解决办法
833
查看次数

Rails 枚举“0”不是有效的收入类型

我有一个 Ruby on Rails 应用程序来处理用户收入,决定它是津贴还是收入并应用适当的税率。我已经包含了一些enums执行基本功能的内容,如下所述。

当我从默认值开始更新时,我遇到了问题“1”不是有效的收入类型。

您可以在下面看到设置,包括模型、控制器和表单。

模型 :

class Income < ApplicationRecord
  enum incomeType: {income: 0, allowance: 1 }
  enum taxed: {yes: 0, no: 1 }

  belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)

控制器:

class IncomesController < ApplicationController
  before_action :set_income, only: [:show, :edit, :update, :destroy]

  # GET /incomes
  # GET /incomes.json
  def index
    @incomes = current_user.incomes.all
  end

  # GET /incomes/1
  # GET /incomes/1.json
  def show
  end

  # GET /incomes/new
  def new
    @income = current_user.incomes.build
  end

  # GET /incomes/1/edit
  def edit
  end …
Run Code Online (Sandbox Code Playgroud)

enums ruby-on-rails ruby-on-rails-5

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

如何在Symfony 4实体上创建DateTime?

我有一个名为User的实体,我想创建一个DateTime字段。

我的课:

<?php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @ORM\Entity(repositoryClass="App\Repository\UserRepository")
 */
class User
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=250)
     */
    private $firstName;

     /**
     * @ORM\Column(type="string", length=250)
     */
    private $lastName;

    /**
     * @ORM\Column(type="string", length=250, nullable = true)
     */
    private $userName;

    /**
     * @ORM\Column(type="string", length=50)
     */
    private $email;

    /**
     * @ORM\Column(type="string", length=20)
     */
    private $password;

    /**
     *@Assert\DateTime()
     */
    private $regData;


    // GETTERS AND SETTERS
}
Run Code Online (Sandbox Code Playgroud)

运行时php …

php entity symfony

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