更新3:看起来这是特定于.yml.erb中的灯具 - 即使我没有模板化代码,似乎yml.erb文件中的灯具也没有加载.有一个简单的.yml文件.这可能与设计本身无关.
注意:请参阅更新3注释以了解相关更改
我需要在我的rails应用程序中生成Devise用户.我注意到清除数据库和加载灯具会加载除Devise用户之外的所有其他灯具(Update 3:在.yml.erb文件中).
我已经看到了这个其他线程,但我尝试了所有选项,但似乎仍然没有加载灯具.
# ../fixtures/users.yml.erb
user1:
email: user1@mysite.com
name: user1
encrypted_password: <%= Devise.bcrypt(User, 'passw0rd!') %>
# also tried encrypted_password: User.new(password_salt: '$2a$10$PoBe1MvkoGJsjMVTEjKqge').send(:password_digest, 'somepassword')
admin: true
Run Code Online (Sandbox Code Playgroud)
从控制台:
要清除测试db:
$ bundle exec rake db:schema:load RAILS_ENV=test
Run Code Online (Sandbox Code Playgroud)
要将灯具加载到测试db中:
$ bundle exec rake db:fixtures:load RAILS_ENV=test
Run Code Online (Sandbox Code Playgroud)
在测试中运行rails console(未找到用户,但正在加载其他模型装置,如App):
$ rails c test
Loading test environment (Rails 4.1.5)
irb(main):001:0> User.first
User Load (0.1ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1
=> nil
irb(main):002:0> App.first
App Load …Run Code Online (Sandbox Code Playgroud) 我有一个rails 4.2.x app,设计用于身份验证 - 我有几个控制器.
我想要设计authenticate_user!除了在主控制器索引操作之外的所有控制器和操作上运行的方法.(当然,authenticate_user!本身注重设计登录等操作)
我可以确保每个控制器操作都在application_controller.rb中运行before_action:
class ApplicationController < ActionController::Base
before_action :authenticate_user!
...
end
Run Code Online (Sandbox Code Playgroud)
我还可以限制所有控制器上的一组特定操作:
class ApplicationController < ActionController::Base
before_action :authenticate_user!, except: [:index]
...
end
Run Code Online (Sandbox Code Playgroud)
但我不知道如何让home/index成为例外.
当然,我可以手动添加before_action :authenticate_user!到每个控制器,并为主控制器添加一个例外以进行索引操作.但这不是很干,如果我添加新的控制器,我需要记住将这个before_action添加到每个控制器.
使用新应用启动rails服务器时出现以下错误:
/Users/fred/.rvm/gems/ruby-1.9.2-p180/gems/mysql2-0.2.6/lib/mysql2/client.rb:37:in`connect':用户'root'@'拒绝访问localhost'(使用密码:YES)(Mysql2 :: Error)
这是我的database.yml
# MySQL. Versions 4.1 and 5.0 are recommended.
#
# Install the MySQL driver:
# gem install mysql2
#
# And be sure to use new-style password hashing:
# http://dev.mysql.com/doc/refman/5.0/en/old-client.html
development:
adapter: mysql2
encoding: utf8
reconnect: false
database: group_chat_development
pool: 5
username: root
password: admin
socket: /tmp/mysql.sock
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to …Run Code Online (Sandbox Code Playgroud) 我有一个rails 4.2.x应用程序,其中我注意到对于我做的每个请求,日志显示整个请求被发送两次 - 一个请求完全完成,页面似乎完全呈现,但是然后另一个请求再次启动日志并在其过程中运行,第二个请求在客户端浏览器中没有可见效果.
Started GET "/path/to/request" for 10.0.1.5 at 2016-04-12 21:23:08 +0530
<... bunch of SQL and other logs to fulfill this request...>
Completed 200 OK in 11487ms (Views: 11279.3ms | ActiveRecord: 40.3ms)
Started GET "/path/to/request" for 10.0.1.5 at 2016-04-12 21:23:21 +0530
<... same bunch of SQL and other logs ...>
Completed 200 OK in 8928ms (Views: 8899.3ms | ActiveRecord: 18.2ms)
Run Code Online (Sandbox Code Playgroud)
开发和生产都会发生这种情况.它独立于浏览器而发生
基于对其他SO线程和一般预感的建议,我尝试过:
'#',并使用'javascript:void(0)'替代bundle exec rake assets:clobberconfig.assets.prefix = '/dev-assets'async: true …Ruby(1.9.3)文档似乎暗示扫描等同于=〜,除此之外
但是,在以下示例中,这两个方法似乎为同一个字符串和表达式返回不同的结果.这是为什么?
1.9.3p0 :002 > str = "Perl and Python - the two languages"
=> "Perl and Python - the two languages"
1.9.3p0 :008 > exp = /P(erl|ython)/
=> /P(erl|ython)/
1.9.3p0 :009 > str =~ exp
=> 0
1.9.3p0 :010 > str.scan exp
=> [["erl"], ["ython"]]
Run Code Online (Sandbox Code Playgroud)
如果第一次匹配的索引是0,不应该扫描返回"Perl"和"Python"而不是"erl"和"python"?
谢谢
我想从Typescript中的类的实例方法中获取当前方法的名称.
(伪代码,不起作用):
class Foo {
bar() {
console.log(something); //what should something be?
}
}
new Foo().bar();
Run Code Online (Sandbox Code Playgroud)
我希望'某事'能够回归'酒吧'.我意识到this可以给我这个类,我可以以某种方式从它获得类及其属性,但我不知道如何获得'这个函数'(即方法栏,而不是类Foo).
我已经看到了几个与查找类名等有关的问题,但没有找到解决当前方法名称的问题.
在我的 Android 应用程序中,我有一个 WebView。我希望在 WebView 中单击的每个链接都可以在我的设备上启动已注册的应用程序(如果有),否则在外部浏览器中打开。例如,如果用户从 WebView 中单击 Facebook 页面链接,则应启动 Facebook 应用程序(如果 facebook 已在设备上注册以处理 facebook 链接)。如果没有注册应用程序,它应该启动外部浏览器(即,它不应该在同一 WebView 中加载页面)。
目前(默认情况下),WebView 仅加载在 WebView 自身内单击的任何链接。
我意识到我需要重写 shouldOverrideUrlLoading 来拦截这些链接点击:
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// what should go here to trigger the registered app or fall back to external browser for all link clicks in the WebView?
}
});
Run Code Online (Sandbox Code Playgroud)
我还查看了意图过滤器,但这似乎与此要求相反(意图过滤器似乎是我注册 Android 应用程序以处理其他地方的网络点击的一种方式)。
更新1:
我不想拦截任何特定的主机名或方案 - 我希望在我的网络视图中单击的每个链接都“委托”给android,其中android决定是否启动注册的应用程序,弹出一个选项供用户选择在哪个应用程序中打开,或在网络浏览器中打开,具体取决于用户设置。
具体来说,如果我点击https://www.facebook.com/blah的链接,它应该在 Facebook …
我正在用R检查kaggle中的imdb电影数据集。
这是最小的repro数据集:
> movies <- data.frame(movie = as.factor(c("Movie 1", "Movie 2", "Movie 3", "Movie 4")), director = as.factor(c("Dir 1", "Dir 2", "Dir 1", "Dir 3")), director_rating = c(1000, 2000, 1000, 3000))
> movies
movie director director_rating
1 Movie 1 Dir 1 1000
2 Movie 2 Dir 2 2000
3 Movie 3 Dir 1 1000
4 Movie 4 Dir 3 3000
Run Code Online (Sandbox Code Playgroud)
请注意,具有相同导演的每一行具有相同的导演评级值。
我想列出导演,按等级排序,每位导演一行。以下代码有效:
> library(dplyr)
> movies %>%
group_by(director) %>%
summarize(director_rating = mean(director_rating)) %>%
arrange(desc(director_rating))
# A tibble: 3 x 2 …Run Code Online (Sandbox Code Playgroud) 版本:
我有一个使用django作为ORM的包(mypkg).
我想在客户端脚本(client/myclient/main.py)中使用该包.
我能够直接在客户端应用程序中使用Django ORM - 问题是当我想在多个客户端应用程序使用的包中使用它时.
包裹代码如下:
# ./mypkg_wrapper/mypkg/mypkg/settings.py
INSTALLED_APPS = [
'django.contrib.contenttypes',
'myapp',
]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
SECRET_KEY = '...'
# mypkg/myapp/models.py
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
# mypkg_wrapper/setup.py
#!/usr/bin/env python
import os
from setuptools import find_packages, setup
# allow setup.py to be run from any path
os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir)))
setup(
name='mypkg',
version='0.0.1',
packages=find_packages(),
include_package_data=True,
description='A django ORM package.',
install_requires=['django', 'pytz']
)
Run Code Online (Sandbox Code Playgroud)
我运行makemigrations,迁移以设置数据库. …
我有一本字典,可能有也可能没有一个或两个键'foo'和'bar'.根据两者是否可用,我需要做不同的事情.这是我正在做的(它的工作原理):
foo = None
bar = None
if 'foo' in data:
if data['foo']:
foo = data['foo']
if 'bar' in data:
if data['bar']:
bar = data['bar']
if foo is not None and bar is not None:
dofoobar()
elif foo is not None:
dofoo()
elif bar is not None:
dobar()
Run Code Online (Sandbox Code Playgroud)
这似乎太冗长了 - 在Python(2.7.10)中这样做的惯用方法是什么?
android ×1
callback ×1
devise ×1
django-orm ×1
dplyr ×1
erb ×1
fixtures ×1
http ×1
javascript ×1
kaggle ×1
mysql ×1
packages ×1
pinterest ×1
python ×1
python-2.7 ×1
r ×1
regex ×1
ruby ×1
typescript ×1