我正在尝试使用postgresql数据库设置我的elixir-phoenix应用程序以使用Docker运行.这就是我的Dockerfile的样子:
# ./Dockerfile
# Starting from the official Elixir 1.5.2 image:
# https://hub.docker.com/_/elixir/
FROM elixir:1.5.2
ENV DEBIAN_FRONTEND=noninteractive
# Install hex
RUN mix local.hex
# Install rebar
RUN mix local.rebar
# Install the Phoenix framework itself
RUN mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez
# Install NodeJS 6.x and the NPM
RUN curl -sL https://deb.nodesource.com/setup_6.x | bash -
RUN apt-get install -y -q nodejs
# Set /lib as workdir
WORKDIR /lib
Run Code Online (Sandbox Code Playgroud)
这是我的docker-compose.yml文件:
web:
build: .
dockerfile: Dockerfile
env_file: .env
command: mix phx.server # Start the …Run Code Online (Sandbox Code Playgroud) 我需要在.env文件上设置一个字符串数组,并且无法找到有关正确语法的信息.测试需要一段时间,所以我想节省一些时间.其中一些选项应该有效:
MY_ARRAY=[first_string, second_string]
MY_ARRAY=[first_string second_string]
MY_ARRAY=['first_string', 'second_string']
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我吗?
提前致谢.
我正在尝试将这个简单的添加div到我的 .tsx 文件的返回块中:
<div id="bizible.reportUser" style="display:none" data-email="some@email.com"/>
Run Code Online (Sandbox Code Playgroud)
我这样做:
import React from 'react';
import Radium from 'radium';
import Icon from './Icon';
import Header from './Header';
import Colors from '../colors';
const NoMatch = ({ children, title, icon, kind }) => {
return ([
<div style={[styles.base, kind && styles[kind]]}>
<Icon name={icon} style={[styles.icon]} height="48" width="48" />
<Header title={title} style={[styles.header]} />
<p style={[styles.message]}>
{children}
</p>
</div>,
<div id="bizible.reportUser" style="display:none" data-email="some@email.com"/>
]
);
};
Run Code Online (Sandbox Code Playgroud)
但它返回一个错误消息并且不编译:
error TS2322: Type '({children, title, icon, kind}: { children: …Run Code Online (Sandbox Code Playgroud) 我正在测试rspec,factory_girl和capybara.该项目使用devise,我有以下方法登录规范:
def login_admin
before(:each) do
@request.env["devise.mapping"] = Devise.mappings[:admin]
sign_in FactoryGirl.create(:admin)
end
end
def login_user
before(:each) do
@request.env["devise.mapping"] = Devise.mappings[:user]
sign_in FactoryGirl.create(:user)
end
end
Run Code Online (Sandbox Code Playgroud)
然后我在companies_controller_spec上执行测试:
require 'spec_helper'
describe CompaniesController, :type => :controller do
let(:valid_attributes) { { "email" => Faker::Internet.email } }
login_admin
describe "GET show" do
it "assigns the requested company as @company" do
company = FactoryGirl.create(:company)
get :show, {:id => company.to_param}
expect(assigns(:company)).to eq(company)
end
end
describe "GET edit" do
it "assigns the requested company as @company" do
company = FactoryGirl.create(:company) …Run Code Online (Sandbox Code Playgroud) 我有一个属于公司的模型 CompanyBranch:
class CompanyBranch < ActiveRecord::Base
belongs_to :company
...
end
Run Code Online (Sandbox Code Playgroud)
公司有一个属性“category_id”。现在我想通过公司的category_id 来确定CompanyBranch 的范围。像这样的东西:
scope :category, -> (category_id) { where company.category_id: category_id }
Run Code Online (Sandbox Code Playgroud)
但这是行不通的。这样做的正确方法是什么?
我有一个fullCalendar日历工作,现在我想使用clientEvents方法来过滤如下事件:
selecter_provider = "somevalue";
events = $('#calendar').fullCalendar( 'clientEvents', [event.provider == selected_provider]);
Run Code Online (Sandbox Code Playgroud)
但我总是得到一个空阵列.
我想我没有正确使用这种方法,但我找不到方法.有线索吗?
我在查询中遇到以下错误:
here is an entry for table "table1", but it cannot be referenced from this part of the query.
Run Code Online (Sandbox Code Playgroud)
这是我的查询:
SELECT id
FROM property_import_image_results table1
LEFT JOIN (
SELECT created_at
FROM property_import_image_results
WHERE external_url = table1.external_url
ORDER BY created_at DESC NULLS LAST
LIMIT 1
) as table2 ON (pimr.created_at = table2.created_at)
WHERE table2.created_at is NULL
Run Code Online (Sandbox Code Playgroud) 我需要在我的 Rails 应用程序上执行一些自定义查询,并且想知道哪种方法更好:
results = ActiveRecord::Base.connection.execute(query)
Run Code Online (Sandbox Code Playgroud)
或者
Model.find_by_sql(query)
Run Code Online (Sandbox Code Playgroud)
一直在阅读文档,但并没有真正了解它们的性能。
我正在和 Phoenix 一起学习 Elixir,但陷入了一个相当愚蠢的境地。我想通过以下方式从索引模板内部调用部分的渲染:
#index.html.slim
- for element_here <- array_here do
= render MyApp.SharedView, "_game.html.slim", element: element_here
Run Code Online (Sandbox Code Playgroud)
为此,我创建了一个名为 shared_view.ex 的视图,如下所示:
defmodule MyApp.SharedView do
use MyApp.Web, :view
def render("game", _assigns), do: "/shared/_game.html.slim"
end
Run Code Online (Sandbox Code Playgroud)
我预计它会经历循环渲染共享/_game.html.slim,我将其复制到此处:
.col-md-4.portfolio-item
a href="#"
img.img-responsive alt="" src="http://placehold.it/700x400" /
h3
a href="#" Project Name
p Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam viverra euismod odio, gravida pellentesque urna varius vitae.
Run Code Online (Sandbox Code Playgroud)
但没有任何内容被渲染。我也没有收到错误。它只是渲染之前和之后的内容。
我不确定我在这里缺少什么。没有路线或控制器操作连接到“_game”部分,因为我认为它没有必要(我习惯了 Rails,它在那里以这种方式工作)。
postgresql ×3
elixir ×2
sql ×2
activerecord ×1
css ×1
devise ×1
docker ×1
dom ×1
env ×1
factory-bot ×1
fullcalendar ×1
javascript ×1
jquery ×1
reactjs ×1
rendering ×1
rspec ×1
scope ×1
scoping ×1
tsx ×1