我正在使用Devise和Rails 4开发一个Web应用程序.我有一个用户模型,我已经扩展了2个额外的表单字段,这样当用户注册时,他也可以提交他的名字/姓氏.(基于http://blog.12spokes.com/web-design-development/adding-custom-fields-to-your-devise-user-model-in-rails-4/).我现在想要添加一个机构模型.此模型has_many:用户和用户belongs_to:institution.我希望能够在注册用户的同一表格上注册该机构的名称.我知道我需要在我的Institution模型中使用nested_attribute ,因为这是父类,我将稍微展示一下.当我尝试注册用户时,我进入控制台:Unpermited参数:机构.
我的提示是我无法根据我的子类(User)更新我的父类(Institution).可能有解决方案吗?或者有没有人经历类似的事情?
class Institutions < ActiveRecord::Base
has_many :users,
accepts_nested_attributes_for :users
end
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
belongs_to :institution
end
Run Code Online (Sandbox Code Playgroud)
registrations/new.html.erb这里我有嵌套表格
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
.
.
<%= f.fields_for :institutions do |i| %>
<p><%= i.label :name %><br />
<%= i.text_field :institutions_attr %></p>
<% end %>
Run Code Online (Sandbox Code Playgroud)
基于我之前链接的教程,我创建了一个新的 …
ruby-on-rails nested-forms nested-attributes devise strong-parameters
我正在尝试从我通过请求收到的项目列表中推送到一个数组(Mongo模型中的属性).从这些项目中,我遍历它们以查看当前在数据库中的哪一个,如果不是这样,那么我创建一个新项目并尝试保存它.我正在使用promises来完成这项任务,但是我无法弄清楚为什么在所有承诺完成后数组都是空的.
var q = require('q');
var items_to_get = ['1', '2', '3']; // example array
var trans = new Transaction({
items : []
});
var promises = [];
for (var i = 0; i < items_to_get.length; i++) {
var ith = i; //save current i, kinda hacky
var deferred = q.defer(); //init promise
//find an existing item
Item.findOne({simcode: items_to_get[ith]}, function(err, item) {
trans.items.push(item); // push item to transaction
deferred.resolve(item); // resolve the promise
});
promises.push(deferred); // add promise to array, can …Run Code Online (Sandbox Code Playgroud) 我正在关注datamaps文档,我正在尝试将onClick监听器设置为我在svg上呈现的气泡.现在,svg div具有以下子标记:
<svg>
<g id class="datamaps-subunits">..</g>
<g id class="bubbles">..</g>
</svg>
Run Code Online (Sandbox Code Playgroud)
文件说,对于地图上列出的国家,这应该按照以下方式完成:
done: function(datamap) {
datamap.svg.selectAll('.datamaps-subunits').on('click', function() {
alert("hello");
});
}
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作,同时尝试点击地图上的特定区域.
试图将相同的侦听器附加到bubbles类没有任何作用.
done: function(datamap) {
datamap.svg.selectAll('.bubbles').on('click', function() {
alert("hello");
});
}
Run Code Online (Sandbox Code Playgroud) 我有一个 API 端点,外部网站可以在其中提交 POST 请求。确保请求真实且不被篡改的最佳方法是什么,因此他们尊重完整性原则?
由于信用卡信息等数据没有价值,因此我不需要 HTTPS 集成。
我已经查看了 HMAC 和数字签名,我相信第二种选择会更好,但我不确定这是否可行?
同样,散列请求并在我的服务器上验证它就足够了吗?
我正在运行Express.js应用程序,我有以下设置:
models.js
var schemaOptions = {
toJSON: {
virtuals: true
},
toObject: {
virtuals: true
}
};
var modelSchema = new mongoose.Schema({
name : { type: String, required: true }
}, schemaOptions);
modelSchema.virtual('id').get(function() { return this._id; });
Run Code Online (Sandbox Code Playgroud)
controllers.js
exports.getModel = function(req, res) {
Model.find().select('name').exec(function(err,model) {
if (err) {
return res.status(500).json({errors:err, message: 'Internal server error'});
}
return res.status(200).json({model: model});
});
};
Run Code Online (Sandbox Code Playgroud)
上述查询的结果如下:
{ "_id":"dakjdjkakda", "name":"MontyPython", "id":"dakjdjkakda" }
Run Code Online (Sandbox Code Playgroud)
因为我在modelSchema中定义了Virtual属性.
如果我将查询select语句更改为:
Model.find().select('-_id name').exec(function(err,model) {}
Run Code Online (Sandbox Code Playgroud)
结果将是:
{"name":"MontyPython", "id":null }
Run Code Online (Sandbox Code Playgroud)
我相信这是因为Virtual属性指向_id属性.
我的问题是,如何删除查询中的_id属性,但保留我创建的id别名?
所以我有这个numpy形状的数组(31641600,2),它有一些,如果不是很多零值.
我们称之为数组X.
这样做:
print len(X)
>>> 31641600
Run Code Online (Sandbox Code Playgroud)
但后来做:
X = X[np.nonzero(X)]
print len(X)
>>> 31919809
Run Code Online (Sandbox Code Playgroud)
不明白为什么第二个更大.在文档中它说应用上面的方法应该只返回非零值,因此X的长度应该更小.
有任何想法吗?谢谢.
我正在做一个http.post请求,我试图显示错误消息,以防出现任何问题.我正在处理服务中的错误消息,然后将其传递给控制器并在$ scope中设置它.我没有得到任何JS错误....任何想法为什么会这样?
services.js
angular.module('app.services', [])
.factory('Model', function($http) {
Model.save = function(data) {
return $http.post(url, data)
.success(function(data, status, headers) {
console.log(data);
console.log(status);
console.log(headers);
})
.error(function(data, status, headers) {
var requestError = 'Something went wrong! :(';
return requestError; //pass error message back to $scope
});
}
return Model;
});
Run Code Online (Sandbox Code Playgroud)
controllers.js
.controller('Ctrl', function($scope, Model) {
//form object data
$scope.formInfo = {};
//form save
$scope.saveData = function() {
//console.log($scope.formInfo);
$scope.requestError = '';
//form data
var data = {name: $scope.formInfo.name, description: $scope.formInfo.description, token: "/api/v1/tokens/1/"};
Model.save(data).then(function(requestError) …Run Code Online (Sandbox Code Playgroud) 所以我设法使用自定义指令通过Angular.js将图像上传到我的服务器.我还设法实现了Cordova的相机功能.现在我正在尝试连接这两个,但是当将图像发送到服务器时,它们被存储为null.我相信问题在于我使用输入字段来获取图像,并且它获得了完整的对象,现在我在拍摄照片并发送之后只获得图像路径.我的问题是,我真的不明白如何将路径转换为Object,如果这是问题?
的index.html
<form class="form-horizontal" role="form">
<button class="picButton" ng-click="getPhoto()" class="button button-block button-primary">Take Photo</button>
<img ng-src="{{lastPhoto}}" style="max-width: 100%">
...
</form>
Run Code Online (Sandbox Code Playgroud)
controllers.js
$scope.getPhoto = function() {
Camera.getPicture().then(function(imageURI) {
console.log(imageURI);
$scope.lastPhoto = imageURI;
$scope.upload(); <-- call to upload the pic
},
function(err) {
console.err(err);
}, {
quality: 75,
targetWidth: 320,
targetHeight: 320,
saveToPhotoAlbum: false
});
};
$scope.upload = function() {
var url = '';
var fd = new FormData();
//previously I had this
//angular.forEach($scope.files, function(file){
//fd.append('image',file)
//});
fd.append('image', $scope.lastPhoto);
$http.post(url, fd, {
transformRequest:angular.identity,
headers:{'Content-Type':undefined …Run Code Online (Sandbox Code Playgroud) 我试过跟随Go Docs来调用一个只从GO输出"Hello"的python脚本,但直到现在才失败.
exec.Command("script.py")
Run Code Online (Sandbox Code Playgroud)
或者我也试过调用一个简单调用python脚本的shell脚本,但也失败了:
exec.Command("job.sh")
Run Code Online (Sandbox Code Playgroud)
任何想法我将如何实现这一目标?
编辑
我按照评论中的建议解决了问题,并添加了exec.Command()的完整路径.
我有一个小的Go Web服务器,我已部署在Amazon Web Services上,但我无法上班.
我的EC2实例分配了公共和私有IP地址,但我无法启动Go服务器.
如果我在localhost上提供它它可以工作,但显然我无法连接到它,所以我试图将它分配给公共IP,但它崩溃而不会丢失任何错误.
http.ListenAndServe("public_ip", nil)
Run Code Online (Sandbox Code Playgroud)
有什么想法从这里开始?
我一直在寻找,似乎找不到任何东西.我在Rails应用程序中使用Easy-Roles和CanCan,我的角色列被定义为字符串数组.当用户从下拉列表中输入/选择角色时,参数将作为字符串而不是数组发送,因此我无法将其保存在数据库中.
是否有任何方法可以从字符串中创建1D-1元素字符串数组?
编辑:
这是我的表格:
<%= f.collection_select :roles, User::ROLES, :to_s, :split,
:prompt=>"Select a role" %>
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
Attribute was supposed to be a Array, but was a String. -- "Admin"
Run Code Online (Sandbox Code Playgroud) 我有4个嵌套循环,我循环列表列表,以及我从函数传递一些参数的函数,具体来说:
def method(var1, var2 ....., var 16):
#computation
pool = Pool()
for values1 in list_of_values1:
#assign 4 variables from the list
for values2 in list_of_values2:
#assign 4 variables from list
for values3 in list_of_values3:
#assign 4 variables from list
for values4 in list_of_values4:
#assign 4 variables from list
method(var1, ..., var16)
Run Code Online (Sandbox Code Playgroud)
我试过用过
pool.map(方法,[var1,...,var16])为了对整个进程进行并行化,但它抛出一个错误,说"method()只需要16个参数,1给出"
我也试过使用Threads,但它没有太大改进.
感谢你的帮助!
干杯
arrays ×3
angularjs ×2
go ×2
javascript ×2
node.js ×2
python ×2
ruby ×2
amazon-ec2 ×1
authenticity ×1
camera ×1
cordova ×1
d3.js ×1
datamaps ×1
devise ×1
exec ×1
file-upload ×1
hash ×1
http-post ×1
integrity ×1
mongodb ×1
nested-forms ×1
numpy ×1
q ×1
string ×1
svg ×1