小编Pau*_*iro的帖子

如何在Ecto中更改字段类型?

我有一个架构:

schema "editables" do
    field :title, :string
    field :content, :string

    timestamps
  end
Run Code Online (Sandbox Code Playgroud)

现在我想将一个字段表单的类型更改:integer:binary.编写迁移的正确方法是什么,因为使用add不起作用......?

def change do
    alter table(:editables) do
      add :title, :binary
      add :content, :binary

      timestamps
    end
  end
Run Code Online (Sandbox Code Playgroud)

elixir ecto phoenix-framework

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

如何在Phoenixframework中使用RethinkDB?

刚到Elixir/Phoenix我想使用RethinkDB而不是PostgreSQL,但我只在PostgreSQL上找到文档/示例(它似乎是默认/官方数据库).Hamiltop(Rethinkdb-elixir)提供了一个非常好的软件包,但遗憾的是Wiki中的文档还没有准备就绪,而自述文件对我来说还不够.我绝对不想使用SQL(我来自使用Meteor/MongoDB,其中数据库不是问题).谁能告诉我一个我需要的代码的简单示例:

  1. 连接到RethinkDB;
  2. 启动服务器/管理服务器/连接;
  3. 创建数据库/表;
  4. 执行基本的CRUD操作.

这可能听起来很傻但是Meteor为我们照顾这些,现在这对我来说是一个问题...因为我无法正确地做到这一点.谢谢!

elixir rethinkdb ecto phoenix-framework

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

如何清理使用Phoenix/Ecto创建的PostgreSQL数据库

我开始玩Ecto试图理解它.正如预期的那样,我搞砸了(使用用户模型),我在运行迁移时遇到错误:

(Postgrex.Error) ERROR (duplicate_table): relation "users" already exists
Run Code Online (Sandbox Code Playgroud)

现在,我想使用shell/PgAdmin III清理数据库,以便我可以修复我的模型并再次运行迁移.我已经设置了PgAdmin,但我无法看到任何"用户"表...这样做的最佳方式是什么(使用Ecto,PostgreSQL shell还是PgAdmin)?

postgresql ecto phoenix-framework

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

Flexbox,z-index和position:static:为什么不工作?

根据flexbox规范:

..4.3.Flex项目Z-Ordering,...和z-index除了auto创建堆叠上下文之外的值, 即使positionstatic.

所以,我认为z-index/ opacity应该像往常一样使用flexbox但是当我将它应用于这个HTML/CSS时它不起作用(我的目标是放在创建两个层.header之上.core):

 .header {
   opacity: 0.5;
   z-index: 2;
   display: flex;
   align-items: center;
   justify-content: flex-end;
 }
 .headerLeft {
   z-index: inherit;
   background-color: blue;
   text-align: right;
   align-self: stretch;
   flex: 2 1 250px;
 }
 .headerCenter {
   z-index: inherit;
   background-color: red;
   text-align: right;
   align-self: stretch;
   flex: 1 1 175px;
 }
 .headerRight {
   z-index: inherit;
   background-color: green;
   text-align: right;
   align-self: stretch;
   flex: 1 1 100px;
 }
 .core { …
Run Code Online (Sandbox Code Playgroud)

html css z-index css3 flexbox

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

如何在Phoenix应用程序启动时预先填充数据库?

我有这个架构:

schema "editables" do
    field :title, :string 
    field :content, :binary
   timestamps
end
Run Code Online (Sandbox Code Playgroud)

我希望在应用程序启动时自动创建和填充几行,说我想创建:title包含以下字段的6个条目:page1,page2,......我应该这样做吗?

elixir ecto phoenix-framework

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

如何能够垂直滚动终端以查看大表中的所有数据

我正在尝试查看PostgreSQL表中的所有数据,但由于有大量数据可以使数据水平拟合,我使用:

\x auto
Run Code Online (Sandbox Code Playgroud)

然后:

SELECT * FROM table_name;
Run Code Online (Sandbox Code Playgroud)

然而,我只能看到一个记录而不能滚动,但如果我扩展我的终端,那么我可以看到更多的数据但不是全部.如何使用垂直滚动查看所有数据?

postgresql psql

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

设置unique_constraint Ecto

我有一个带有电子邮件字段的用户模型.现在我想使其独一无二,因此,根据文档,我需要申请:

cast(user, params, ~w(email), ~w())
|> unique_constraint(:email)
Run Code Online (Sandbox Code Playgroud)

另外,我应该在迁移中定义唯一索引:

create unique_index(:users, [:email])
Run Code Online (Sandbox Code Playgroud)

问题是,当我尝试在迁移中定义这个,同时添加更多字段时,它不起作用,现在我试图用这个定义迁移create unique_index(:users, [:email])并且它创建了一个错误:

[info]  create index users_email_index
** (Postgrex.Error) ERROR (unique_violation): could not create unique index "users_email_index"
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

elixir ecto phoenix-framework

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

如何从Ecto模型中删除字段

我想从现有的Ecto模型中删除一个字段:

field :age, :integer
Run Code Online (Sandbox Code Playgroud)

阅读完文档之后,我不确定这样做的最佳/简单方法是什么(删除(列))?...你能举例说明吗?我试过了:

def change do
    create table(:users) do
      remove :age
    end
end
Run Code Online (Sandbox Code Playgroud)

它不起作用.

elixir ecto phoenix-framework

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

Phoenix:渲染模板,它在模板中分配值

我正在尝试让我的应用程序干燥和模块化.但是当我尝试将一个组件(小模板)接收到在另一个模板(更大的模块)中调用/"instanciating"时传递的动态值时,我收到了这个错误:

assign @conn not available in eex template. Available assigns: []
Run Code Online (Sandbox Code Playgroud)

我插入模块(大模板)中的组件(小模板)是这样的:

<div class="menuButton main <%= @class %>" id="<%= @id %>">
    <div class="menuButton firstChild linesItem"></div>
    <div class="menuButton firstChild textItem">MENU</div>
</div>
Run Code Online (Sandbox Code Playgroud)

我使用以下方法将其插入模块中:

<%= render myapp.ComponentView, "menuButton.html", class: nil, id: "menuButtonMenu" %>
Run Code Online (Sandbox Code Playgroud)

我使用以下命令将我的模块插入到页面中:

<%= render myapp.ModuleView, "header.html" %>
Run Code Online (Sandbox Code Playgroud)

什么是使这项工作最好的方法,同时仍然保持小组件/大模块的逻辑干净和干燥?

elixir phoenix-framework

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

仅Chrome错误:无法在"窗口"上执行"滚动":未找到与提供的签名匹配的功能

我在Chrome中遇到此错误(在Safari/Firefox中有效):
Failed to execute 'scroll' on 'Window': No function was found that matched the signature provided. 代码在内联事件中:

<div onclick='function scrollToByIntoView () {
    window.scroll({
      top: 0, 
      left: 0, 
      behavior: "smooth"
    })
  };
scrollToByIntoView();'>
Run Code Online (Sandbox Code Playgroud)

我无法理解这是什么问题.
PS:请注意,此代码是DOM渲染后得到的输出.实际代码是我在服务器端模板引擎中使用的不同组件/功能中的拆分器,如下面的评论中所述,应该避免直接混合此代码.

javascript cross-browser

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