小编Luc*_*Luc的帖子

Rails依赖于表单中的collection_select字段

我正在使用rails应用程序,但无法找到如何处理依赖的下拉列表.我有3个型号: - 有几个组的类别 - 有几个成员的组 - 成员

选择类别后,我希望此类别中的组填充第二个下拉列表(组和成员之间的相同内容).

我有以下表格(显然这不符合我喜欢的方式,因为我采取了特定型号的所有项目)...

<div class="field">
<%= f.collection_select(:category, Category.find(:all), :id, :name, {:include_blank => 'Category'}) %>
</div>
<div class="field">
<%= f.collection_select(:group, Group.find(:all), :id, :name, {:include_blank => 'Group'}) %>
</div>
<div class="field">
<%= f.collection_select(:member, Member.find(:all), :id, :name, {:include_blank => 'Member'}) %>
</div>
<div class="actions">
<%= f.submit %>
</div>
Run Code Online (Sandbox Code Playgroud)

什么是使这些领域依赖的最佳方法?我在网上找到了几个关于此问题的主题但却找不到答案.

forms ruby-on-rails

5
推荐指数
1
解决办法
6356
查看次数

node.js 中间件检查强制参数

我正在使用 node.js 并在我当前的应用程序中表达。我创建了几个中间件函数,每个中间件函数的创建方式如下:

function loadUser(req, res, next){
  ...
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个中间件来检查快速操作中是否存在强制参数。例如,我有一个 /user/create 操作,它需要昵称、密码、电子邮件……作为必需参数。然后我需要将此参数列表传递给中间件,以便它可以检查 req.query 中是否存在这些参数。

任何的想法 ?

更新

我终于完成了以下操作(在快速文档中,有一个中间件示例需要附加参数http://expressjs.com/guide.html#route-middleware)。

function checkParams(arr){
  return function(req, res, next) {
    // Make sure each param listed in arr is present in req.query
    var missing_params = [];
    for(var i=0;i<arr.length;i++){
      if(! eval("req.query." + arr[i])){
        missing_params.push(arr[i]);
      }
    }
    if(missing_params.length == 0){
      next();
    } else {
      next(JSON.stringify({ "error" : "query error", "message" : "Parameter(s) missing: " + missing_params.join(",") }));
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

然后像其他中间件一样调用它:

app.post('/user/create', checkParams(["username", "password"]), function(req, …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express

5
推荐指数
1
解决办法
3535
查看次数

如何在redis中使用重音保存和检索字符串?

我无法在redis数据库中设置和检索带重音的字符串.
带有重音符号的字符是编码的,如何在设置的位置检索它们?

redis> set test téléphone
OK
redis> get test
"t\xc3\xa9l\xc3\xa9phone"
Run Code Online (Sandbox Code Playgroud)

我知道这已被问过(http://stackoverflow.com/questions/6731450/redis-problem-with-accents-utf-8-encoding)但没有详细的答案.

redis

4
推荐指数
1
解决办法
5501
查看次数

personal web site hacked on ovh.com, code added in html

My friend has a web site on ovh.com.Since a couple of days, the site is flagged as dangerous by google.

I had a look in the files (the site only contains only html, css, pjg) and it appears that a new line of code:

<script>http://...page.php</script></body>
Run Code Online (Sandbox Code Playgroud)

(I do not remember the exact url) has been added in some of the html pages. This is obviously a virus that would be run when the page is displayed.

If I delete this line …

html security virus web

3
推荐指数
1
解决办法
814
查看次数

Rails,Heroku不加载我的lib

我在一个新的rails应用程序中工作,我创建了一个小实用程序类RAILS_ROOT/lib.我在一个控制器中使用这个类require.在本地这个类是正确加载的,但是当我在heroku上部署应用程序时,它崩溃了:

LoadError(没有要加载的文件 - MyUtilityClass)

有任何想法吗?

更新:

我发现了这个问题.在我的控制器中,我做了一个'require"MyUtilityClas"',这在当地工作正常.在heroku上我需要做一个'require'/lib/my_utility_class.rb"'.嗯......我真的不明白为什么其实......

ruby-on-rails heroku ruby-on-rails-3

3
推荐指数
1
解决办法
1825
查看次数

这个查询是否可以在nosql中使用(使用mongodb)?

我在我的node.js应用程序中使用mongoose,基本上有以下模型:

// Define Car model
CarSchema = new Schema({
  brand  : String,
  type: String,    
  maxSpeed : Number
});
mongoose.model('Car', CarSchema);
// Define User model
UserSchema = new Schema({
  lastname        : String,
  firstname : String,
  cars   : [CarSchema]
});
mongoose.model('User', UserSchema);
Run Code Online (Sandbox Code Playgroud)

我是NoSQL的新手,我真的想尝试一下,但我首先需要研究这是否真的符合我的需求.

通过上述模型,我是否可以创建一个查询,列出所有在其私人汽车中拥有特定类型汽车的用户?

mongoose mongodb nosql node.js

3
推荐指数
1
解决办法
482
查看次数

仅使用JQuery处理多语言

我在我的网络应用程序中使用JQuery,我想知道在这种情况下处理多语言的最佳方法是什么.
我在想创建一个像这样的文件:

label["login"]["fr"]="Connection"
label["login"]["en"]="Login"
Run Code Online (Sandbox Code Playgroud)

一旦文件加载,我将(对于每个标签)a:

$('#login').text(label["login"][selected_language]);
Run Code Online (Sandbox Code Playgroud)

在HTML中,我将使用:

<a href="login.html"><span id="login"></span></a>
Run Code Online (Sandbox Code Playgroud)

这是一个正确的方法吗?

javascript jquery

3
推荐指数
1
解决办法
9681
查看次数

带redis的node.js:同步还是异步?

在我的应用程序(node/express/redis)中,我使用一些代码同时更新DB中的多个项目:

app.put('myaction', function(req, res){
    // delete stuff
    db.del("key1");
    db.srem("set1", "test");

    // Add stuff
    db.sadd("set2", "test2");
    db.sadd("set3", "test3");
    db.hmset("hash1", "k11", "v11", "k21", "v21");
    db.hmset("hash2", "k12", "v12", "k22", "v22");
    // ...

    // Send response back
    res.writeHead(200, {'content-type': 'application/json'});
    res.write(JSON.stringify({ "status" : "ok" }));

    res.end(); 
});
Run Code Online (Sandbox Code Playgroud)

在方法返回之前,我能确定所有这些操作都会执行吗?我担心的是异步处理.因为我不在db动作中使用回调函数,这样会好吗?

redis node.js

3
推荐指数
1
解决办法
3326
查看次数

更改每个其他单元格的UItableViewCell背景颜色

为了让我的UITableView看起来更好,我需要交替更改每个单元格的背景颜色.
由于我没有设法直接更改背景颜色,我在单元格的背景中添加了一个UILabel,然后执行以下操作(在cellForRowAtIndexPath方法中):

// Set cell color
if(indexPath.row % 2 == 0){
    UIView *bckView = (UIView *)[cell viewWithTag:100];
    bckView.backgroundColor = [UIColor colorWithRed:226.0/255.0 green:243.0/255.0 blue:1.0 alpha:1.0];
}
Run Code Online (Sandbox Code Playgroud)

当列表第一次显示时它看起来很好(第一个单元格是浅蓝色,第二个单元格是白色,第三个是浅蓝色......).但是......当我玩和移动列表几次并完成时,细胞的背景颜色混合在一起.我很确定这与细胞被重复使用有关,但我无法弄清楚如何解决这个问题.任何的想法 ?

uitableview ios

3
推荐指数
1
解决办法
2057
查看次数

Traefik配置允许websocket

我有一个包含以下服务的应用程序:

  • tls终止(基于https-portal)
  • 反向代理(nginx)
  • 其他服务(Web,API,WSS等)

所有流量都是这样的:

https-portal-> nginx->其他服务

我用Traefik替换了https-portal,但我无法使websocket正确通过。

以下是我的docker-compose.yml文件的摘录。进入Traefik的流量将转发到反向代理的专用端口。这将执行几次检查,然后将请求转发到适当的服务(API,Web前端,WebSocket服务器等)。

  # Proxy
  proxy:
    image: mynginxproxy
    build: ../../../development/proxy
    restart: always
    labels:
      - traefik.web.frontend.rule=Host:app.dev
      - traefik.web.port=8000
      - traefik.wss.frontend.rule=Host:wss.app.dev
      - traefik.wss.protocol=ws
      - traefik.wss.port=9002
      - traefik.api.frontend.rule=Host:api.app.dev
      - traefik.api.port=8002
      - ... // other labels

  # Traefik
  traefik:
    image: traefik
    command: --web --docker --docker.domain=app.dev --logLevel=DEBUG
    labels:
      - "traefik.enable=false"
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /dev/null:/traefik.toml
Run Code Online (Sandbox Code Playgroud)

在app.dev域上为Web前端提供服务时,在ws://wss.app.dev上尝试了websocket连接,但它无法连接到基础的websocket服务器。错误似乎链接到Origin头,该头设置为app.dev,目标服务器为wss.app.dev。

日志表格traefik:

traefik_1        | time="2017-08-02T13:55:05Z" level=warning msg="Error while upgrading connection : websocket: 'Origin' header value not allowed"
Run Code Online (Sandbox Code Playgroud)

我不确定我在这里缺少什么,因为这可以通过https-portal正确传递。Traefik是否需要其他选择?

proxy websocket traefik

3
推荐指数
1
解决办法
5739
查看次数