我希望当我在工厂中进行更改时,我会在rails控制台中看到它们而不重新启动所有控制台.
我找到了一些线条并对它们进行了测试,对所发生的事情了解不多,文档对我来说并不清楚:
FactoryGirl.reload
Run Code Online (Sandbox Code Playgroud)
我也测试过:
> FactoryGirl.factories.clear
> FactoryGirl.find_definitions # also tested FactoryGirl.factories.find_definitions
# but NoMethodError is raised
=> ActiveRecord::RecordNotFound: Couldn't find Address with ID=277 Torphy Squares
Run Code Online (Sandbox Code Playgroud) 我知道如何写入文件,并从文件中读取,但我不知道如何修改文件,除了将整个文件读入内存,操作它,并重写整个文件.对于大文件,这不是很有效率.
我真的不知道追加和写的区别.
例如
如果我有一个文件包含:
Person1,will,23
Person2,Richard,32
Person3,Mike,44
Run Code Online (Sandbox Code Playgroud)
我怎么能只删除包含Person2的行?
我试过了:
class MyMailer
def routes
Rails.application.routes.url_helpers
end
def my_mail
@my_route = routes.my_helper
... code omitted
end
Run Code Online (Sandbox Code Playgroud)
邮件内部也是:
include Rails.application.routes.url_helpers
def my_mail
@my_route = my_helper
Run Code Online (Sandbox Code Playgroud)
另外,简单的方法,在邮件模板中:
= link_to 'asd', my_helper
Run Code Online (Sandbox Code Playgroud)
但是当我尝试启动控制台时,我得到:
undefined method `my_helper' for #<Module:0x007f9252e39b80> (NoMethodError)
Run Code Online (Sandbox Code Playgroud)
我正在使用_url助手的形式,即my_helper_url
我想创建一个迭代几个字符串的循环,但在Matlab中无法这样做.
有效的是:
for i=1:3
if (i==1)
b='cow';
elseif (i==2)
b='dog';
else
b='cat';
end
disp(b);
end
Run Code Online (Sandbox Code Playgroud)
结果是:
cow
dog
cat
Run Code Online (Sandbox Code Playgroud)
但我想要的是更优雅的东西,看起来像:
for i=['cow','dog','cat']
disp (i);
end
Run Code Online (Sandbox Code Playgroud)
并给出相同的结果.
Matlab中有选项可以做到这一点吗?
加成:
我稍后需要使用单词作为字符串来使用而不仅仅是显示(disp仅作为示例).我试图在我的真实程序中使用单元格数组:
clear all;
close all;
clc;
global fp_a
global TEST_TYPE
global SHADE_METHODE
for fp_a=11:24
for shade={'full','fast'}
SHADE_METHODE=shade(1);
for test={'bunny','city'}
TEST_MODE=test(1);
fprintf ('fp_a:%d | test: %s | shade: %s',fp_a,TEST_TYPE,SHADE_METHODE);
ray_tracing;
end
end
end
Run Code Online (Sandbox Code Playgroud)
它不起作用,因为值保持为单元格而不是字符串我收到错误消息:
??? 使用==> fprintf时出错没有为'cell'输入定义函数.
* - 我真的不需要fprintf我只是用它来检查值是否正确.
** - ray_tracing是我使用字符串值的代码
从我看到的几个帖子中,我正在尝试这个
x = Base64.decode64("data:image/png;base64,iVBOR....")
File.open('test.png','wb') {|file| file.write x}
Run Code Online (Sandbox Code Playgroud)
但是后来我无法用观众打开图像,我还需要做更多的事吗?
因为某种原因,我的表单只需按一下按钮即可提交两次.这是我第一次使用jquery Form插件,我想jquery提交一次,表单也"自然"提交.我已经看到,补救措施是将"return false"附加到表单的onSubmit事件处理程序.我以为我在做那件事,但显然它不起作用.
有人可以帮忙吗?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>User form entry </title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="jquery.validate.js"></script>
<script src="jquery.passwordStrength.js"></script>
<script src="jquery.form.js"></script>
<script>
$(document).ready(function() {
$('#signupForm').ajaxForm(function() {
var queryString = $('#signupForm').formSerialize();
$.post('process.php', queryString);
});
});
</script>
</head>
<body>
<form id="signupForm" action="process.php" onsubmit="return false" method="post">
<fieldset class="password">
... form goes here
<button type="submit" name="formSubmit" value="submit">Click to submit</button>
</form>
<div id="results"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我已经尝试将onsubmit ="return false"添加到表单元素,但之后我根本没有提交.我也尝试过添加"return false".到jQuery,但后来我还有两次提交.我错过了什么?这似乎是根据jQuery Form Plugin网站的标准方法..我的表单有何不同?
(顺便说一下,只是为了清楚..我不是在谈论通过反复按下按钮连续多次提交多个表格的问题.我的问题是"一个提交按钮推送=两个提交".)
总是相当于使用一个或另一个?
这些打印机在控制台同样的东西
class Model extends Backbone.Model
defaults:
some: 'thing'
other: 'item'
model = new Model
console.log model.attributes
console.log model.toJSON()
Run Code Online (Sandbox Code Playgroud) 我将如何仅background-clip使用CSS来着色HTML元素的一部分.
我看起来像:
div {
background-image: url('mi_image');
***: 50% 30em; /* Background only covering 50% height and 30em width */
}
Run Code Online (Sandbox Code Playgroud)
如果有必要,我也会接受JavaScript解决方案 - 但纯CSS会更好.
我有一个在nginx + Unicorn(Ubuntu 12.04)上运行的Rails(v3.2.13,Ruby 2.0.0)应用程序.一切都运行良好,除非管理员用户通过CVS文件上传用户(数千).问题是我将超时设置为30秒,导入过程需要更多时间.所以,30秒后我得到一个nginx 502 Bad Gateway页面(Unicorn worker被杀).
显而易见的解决方案是增加超时,但我不希望这样,因为它会导致另一个问题(我猜),因为它不是典型的行为.
有办法处理这类问题吗?
非常感谢提前.
PS:也许解决方案是修改代码.如果是这样,我想避免用户执行另一个请求.
一些想法(不知道是否可能):
nginx的-app.conf
upstream xxx {
server unix:/tmp/xxx.socket fail_timeout=0;
}
server {
listen 80;
...
location / {
proxy_pass http://xxx;
proxy_redirect off;
...
proxy_connect_timeout 360;
proxy_send_timeout 360;
proxy_read_timeout 360;
}
}
Run Code Online (Sandbox Code Playgroud)
unicorn.rb
worker_processes 2
listen "/tmp/xxx.socket"
timeout 30
pid "/tmp/unicorn.xxx.pid"
Run Code Online (Sandbox Code Playgroud) 我在routes.rb中有这个:
namespace :api do
namespace :v1 do
...
devise_for :users, constraints: { format: :json },
:controllers => { :omniauth_callbacks => "auths" }
...
end
end
Run Code Online (Sandbox Code Playgroud)
并产生这些路线:
new_api_v1_user_confirmation GET /api/v1/users/confirmation/new(.:format) api/v1/confirmations#new {:format=>:json}
GET /api/v1/users/confirmation(.:format) api/v1/confirmations#show {:format=>:json}
api_v1_user_omniauth_authorize /users/auth/:provider(.:format) auths#passthru {:provider=>/facebook|twitter|linkedin/, :format=>:json}
api_v1_user_omniauth_callback /users/auth/:action/callback(.:format) auths#(?-mix:facebook|twitter|linkedin) {:format=>:json}
Run Code Online (Sandbox Code Playgroud)
如何获取最后两个命名空间的路由,如:
/api/v1/auth/:provider(.:format)
/api/v1/auth/:provider/callback(.:format)
Run Code Online (Sandbox Code Playgroud)