小编dch*_*cke的帖子

智能复数总是聪明的?

Ruby on rails对模型,视图和控制器名称使用单数和复数约定.这非常好,因为可能有一个名为call的模型user和一个名为的控制器users.这适用于几乎每个单词,例如用户,树,书,所以每个单词只有一个s来形成复数.

然而,那些不只需要用s来形成复数的单词,比如用字母"y"结尾的单词呢?例如,城市和城市?铁轨是否知道两者的区别还是我需要写citycitys,即使它在语法上是错误的?

model-view-controller grammar ruby-on-rails

10
推荐指数
1
解决办法
1996
查看次数

将逗号转换为点作为分隔符

如何将用户数输入从11,5转换为11.5?

我尝试了以下作为回调:

before_validation :comma_to_delimiter

def comma_to_delimiter
  self.price.to_s.gsub(',', '.').to_f
end
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我希望用户能够输入他想要的任何分隔符 - 当前,当用户使用逗号而不是点时,应用程序会抛出错误.

validation ruby-on-rails delimiter

10
推荐指数
2
解决办法
8329
查看次数

在Angular 2中加载带有SystemJS和Karma的节点模块

我正在使用Angular 2,SystemJS和Karma构建一个Web应用程序进行测试.

我正在尝试在测试中加载节点模块ngrx/store:

import {
  it, describe, expect, beforeEach, inject
} from 'angular2/testing';

import { Store } from '@ngrx/store';

describe('Graphs store', () => {
  let graphs;

  beforeEach(inject([Store], (store: Store<any>) => {
    graphs = store.select('graphs');
  }));

  it('works', () => {
    // expect graphs to do something...
  });
});
Run Code Online (Sandbox Code Playgroud)

但是,我的测试失败并显示以下消息:

404: /@ngrx/store
Chrome 48.0.2564 (Mac OS X 10.11.3) ERROR
  Error: XHR error (404 Not Found) loading http://localhost:9876/@ngrx/store
Run Code Online (Sandbox Code Playgroud)

我在dev中也遇到了同样的问题,结果发现SystemJS不知道在哪里可以找到@ngrx/store.为了解决这个问题,我这样做了:

System.config({
  packages: {
    src: {
      format: 'register',
      defaultExtension: 'js'
    } …
Run Code Online (Sandbox Code Playgroud)

karma-runner systemjs angular

10
推荐指数
1
解决办法
4158
查看次数

为什么jquery ajax回调函数不起作用?

我在jQuery ajax中遇到一个简单的回调函数问题.谷歌不会帮助,堆栈溢出也不会,所以我想这可能不是特定的东西,而是我无知的东西.对我来说代码看起来应该是这样的.

那么,这是代码:

function sendMessage(message)
{
//Establish connection to php script
$.ajax({
    type: 'POST',
    url: 'action/chat/test.php',
    success: function(feedback){

        alert(feedback);

    }
}).error(function(){
    //Do some error handling here
});
}
Run Code Online (Sandbox Code Playgroud)

在test.php中它简单地说

<?php
    echo "called";
?>
Run Code Online (Sandbox Code Playgroud)

据我所知,"被叫"应该被警告 - 但事实并非如此.我已经检查过调用函数sendMessage()(现在参数消息无关紧要).

有谁有想法吗?

ajax jquery callback jquery-callback

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

三维数据库表

我们都在那里 - 考虑以下示例 - 首先,客户说"每个用户只有一个个人资料图片",所以我们在用户表中添加一个字段 - 半年后,需求发生变化,用户实际上需要有n张个人资料图片.

现在,这似乎只有在你添加一个新表如user_pictures来处理新的基数1:n而不是1:1时才有可能.通常这会变得非常复杂.每当我遇到这个问题时,我想知道为什么我们不使用我们可以想到的所有三个维度.二维表的局限性有点不完整 - 如果,指的是我们的问题与个人资料图片再次,用户表中的图片字段具有深度,并且该深度使该字段成为同时完美地表示基数1:1和1:n的数组.

表字段将简单地成为数组并自动支​​持两个基数 - 这不是什么?至少我会用它.那里有类似的东西吗?

sql database arrays dimensions

9
推荐指数
2
解决办法
1万
查看次数

使用rspec和pdfkit测试pdf的下载

我正在开发一个rails 3.2应用程序,用户可以使用它下载pdfs.我很喜欢使用rspec和shoulda匹配器进行测试驱动开发,但是我对此感到茫然.

我的控制器里面有以下代码:

def show_as_pdf
  @client = Client.find(params[:client_id])
  @invoice = @client.invoices.find(params[:id])

  PDFKit.configure do |config|
    config.default_options = {
      :footer_font_size => "6",
      :encoding => "UTF-8",
      :margin_top=>"1in",
      :margin_right=>"1in",
      :margin_bottom=>"1in",
      :margin_left=>"1in"
    }
  end

  pdf = PDFKit.new(render_to_string "invoices/pdf", layout: false)
  invoice_stylesheet_path = File.expand_path(File.dirname(__FILE__) + "/../assets/stylesheets/pdfs/invoices.css.scss")
  bootstrap_path = File.expand_path(File.dirname(__FILE__) + "../../../vendor/assets/stylesheets/bootstrap.min.css")

  pdf.stylesheets << invoice_stylesheet_path
  pdf.stylesheets << bootstrap_path
  send_data pdf.to_pdf, filename: "#{@invoice.created_at.strftime("%Y-%m-%d")}_#{@client.name.gsub(" ", "_")}_#{@client.company.gsub(" ", "_")}_#{@invoice.number.gsub(" ", "_")}", type: "application/pdf"
  return true
end
Run Code Online (Sandbox Code Playgroud)

这是相当简单的代码,它所做的就是配置我的PDFKit并下载生成的pdf.现在我想测试整个事情,包括:

  • 实例变量的分配(当然很简单,有效)
  • 发送数据,即pdf的渲染=>这就是我被困住的地方

我尝试过以下方法:

controller.should_receive(:send_data)
Run Code Online (Sandbox Code Playgroud)

但这给了我

Failure/Error: controller.should_receive(:send_data)
   (#<InvoicesController:0x007fd96fa3e580>).send_data(any args)
       expected: 1 time
       received: …
Run Code Online (Sandbox Code Playgroud)

pdf rspec ruby-on-rails pdfkit wkhtmltopdf

9
推荐指数
2
解决办法
8087
查看次数

传递对象或id

这只是关于最佳实践的问题.

想象一下,你有一个带一个参数的方法.此参数是对象的id.理想情况下,我希望能够直接传递对象的id,或者只传递对象本身.

这样做最优雅的方法是什么?

我想出了以下内容:

def method_name object
  object_id = object.to_param.to_i
  ### do whatever needs to be done with that object_id
end
Run Code Online (Sandbox Code Playgroud)

所以,如果参数已经是一个id,它几乎保持不变; 如果它是一个对象,它就会得到它的id.

这有效,但我觉得这可能会更好.此外,to_param返回一个字符串,在某些情况下可以返回一个"真实"字符串(即"字符串"而不是"2"),因此在调用to_i时返回0.例如,当为类使用友好id gem时,可能会发生这种情况.

活动记录提供相同的功能.如果你说:无所谓:

Table.where(user_id: User.first.id) # pass in id
Run Code Online (Sandbox Code Playgroud)

要么

Table.where(user_id: User.first) # pass in object and infer id
Run Code Online (Sandbox Code Playgroud)

他们是如何做到的呢?实现这种效果的最佳方法是什么?

ruby ruby-on-rails

9
推荐指数
2
解决办法
2447
查看次数

mysql提交和事务

我有一个关于mysql提交和事务的问题.

我有几个执行mysql查询的php语句.

我只是说以下内容吗?

mysql_query("START TRANSACTION");
//more queries here
mysql_query("COMMIT");
Run Code Online (Sandbox Code Playgroud)

这到底是做什么的?它有什么用?对于更新,删除和插入,我还发现这可以阻止其他查询读取:

mysql_query("LOCK TABLES t1 WRITE, t2 WRITE");
//more queries here
mysql_query("UNLOCK TABLES t1, t2");
Run Code Online (Sandbox Code Playgroud)

这会阻止任何性质的其他查询或只写/选择吗?

另一个问题:假设一个查询正在运行并阻止其他查询.另一个查询尝试访问被阻止的数据 - 并且它看到它被阻止.它是如何进行的?是否等到数据再次被解除阻塞并重新执行查询?它是否失败并需要重复?如果是这样,我该怎么检查?

非常感谢!

丹尼斯

php mysql transactions commit

7
推荐指数
1
解决办法
2万
查看次数

为什么没有出现类似fb的按钮?

我很沮丧,因为我花了好几个小时 - 这里还有其他线索,但是没有一个解决了我的问题!

我只想在我的网站www.posti.sh上实现类似fb的按钮 - 我想知道为什么它不起作用?

这是我使用的代码,根据https://developers.facebook.com/docs/reference/plugins/like/一步一步的教程:

<div id="fb-root"></div> (directly after the opening body tag)
Run Code Online (Sandbox Code Playgroud)

<div class="fb-like" data-href="http://www.posti.sh" data-send="true" data-width="450" data-show-faces="true"></div>
Run Code Online (Sandbox Code Playgroud)

我希望它在哪里.

我还在头部添加了相应的meta标签.

任何人都知道为什么它不起作用?

谢谢!!

丹尼斯

更新1

我使用了fb调试工具https://developers.facebook.com/tools/debug,它只说og图像不够大 - 我想这不应该是个问题吗?

facebook-like

7
推荐指数
1
解决办法
1万
查看次数

Typescript:如何从浏览器控制台访问功能

语境

ts/app.ts,有:

function foo() {
    console.log('Hello Word');
}
Run Code Online (Sandbox Code Playgroud)

它使用 Webpack 成功编译bundle.js并加载:

<script src="dist/bundle.js"></script>
Run Code Online (Sandbox Code Playgroud)

问题

如何foo从浏览器控制台执行?

> foo()
Uncaught ReferenceError: foo is not defined
Run Code Online (Sandbox Code Playgroud)

javascript typescript webpack

7
推荐指数
1
解决办法
2170
查看次数