小编Jak*_*uld的帖子

self.send(method,=,value)不起作用

我正在尝试创建一个Ruby类,其中该initialize方法采用选项的哈希值.然后,我将这些选项作为attr_accessor课程的选项.现在,我可以做点什么

class User
  attr_accessor :name, :email, :phone

  def initialize(options)
    self.name = options[:name]
    self.email = options[:email]
    self.phone = options[:phone]
  end
end

User.new(:name => 'Some Name', :email => 'some-name@some-company.com', :phone => 435543093)
Run Code Online (Sandbox Code Playgroud)

但它对我来说并不觉得很干.相反,我想做

class User
  attr_accessor :name, :email, :phone

  def initialize(options)
    options.each do |option_name, option_value|
      # Does not work!!
      self.send(option_name, '=', option_value)

      # Does not work either!!
      self.send(option_name, '=' + option_value)
    end
  end
end

User.new(:name => 'Some Name', :email => 'some-name@some-company.com', :phone => 435543093)
Run Code Online (Sandbox Code Playgroud)

但我不能让语法工作!

我究竟做错了什么?

ruby ruby-on-rails

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

从SQL查询中删除重复项(不仅仅是"使用不同")

这可能很简单,这是我的查询:

SELECT DISTINCT U.NAME, P.PIC_ID
FROM USERS U, PICTURES P, POSTINGS P1
WHERE U.EMAIL_ID = P1.EMAIL_ID AND P1.PIC_ID = P.PIC_ID AND P.CAPTION LIKE '%car%';
Run Code Online (Sandbox Code Playgroud)

但是这只会删除一行具有相同的u.name和p.pic_id的重复项.我想要它,如果有任何重复的名称,它只是遗漏了其他行.这是一个奇怪的查询,但一般来说,如何将distinct应用于SELECT子句的单个列?

sql distinct duplicates

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

Chrome window.print()window.close()导致'打印预览失败'.解?

我有一个打印页面,在新标签页或窗口中打开.结果页面打开一个打印对话框.用户在打印对话框上进行选择后,页面将关闭选项卡/窗口.

window.print();
window.close();
Run Code Online (Sandbox Code Playgroud)

这曾经在主流浏览器中运行良好,但Chrome的最新版本之一打破了这一点(即14.0.835.202).

我收到以下消息,我猜是chrome打印插件:"打印预览失败".

有没有人有解决方案在打印后关闭Chrome标签/窗口?

javascript google-chrome

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

如何*不*在退出Ember.js中的路线时销毁View

关于新的Ember.js路由系统(在此描述),如果我理解正确,当您退出路由时视图将被销毁.

有没有办法在退出路径时绕过视图的销毁,以便在用户重新进入路径时保留视图的状态?


更新:看起来,除非在新路线中更换插座视图,否则不会销毁视图.例如,如果您在某个{{outlet master}}中使用ViewA的stateA,并且您使用{{outlet master}}中的ViewB转到stateB,则ViewB将取代ViewA.解决这个问题的方法是在需要保留视图时定义多个出口,例如{{outlet master1}},{{outlet master2}},...

一个很好的功能是能够将一组视图传递到插座.并且还可以选择在退出路线时是否会销毁视图或隐藏视图.

ember.js ember-old-router

13
推荐指数
1
解决办法
3253
查看次数

在包含中使用$ _SERVER ['DOCUMENT_ROOT']是个好主意吗?

例如,这是一个好主意吗?

require_once($_SERVER['DOCUMENT_ROOT'].'/include.php');
Run Code Online (Sandbox Code Playgroud)

如果在同一服务器上有两个虚拟主机,一个用于实时,一个用于开发,具有不同的Apache DocumentRoot,这将避免在包含源未知时包含绝对路径,并且可能位于任何目录中.

(注意:以下部分中的文件路径是相对于Web根目录的.它们实际上就像是,Web根目录/var/www/app/core/init.php在哪里/var/www/app)

例如:我有一个/core/init.php,它使用来自网站(/file.php,/dir/file.php or /dir/dir/file.php)所在地的相对路径调用.

这个init.php然后包括几个功能页面,在基金目录中,一个子目录/core(如/core/func/userfunctions.php).

所以,在init.php中,我可以使用该$_SERVER方法,因为如果我使用相对路径并尝试从类似的页面调用函数,它会中断/dir/file.php.

我看不出有任何问题,但总的来说可能会出错?

php

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

ContentResolver - 如何从Uri获取文件名

我用Intent ACTION_GET_CONTENT调用startActivityForResult.一些应用程序使用此Uri返回数据:

内容://媒体/外部/图像/媒体/ 18122

我不知道它是图像,视频还是一些自定义内容.如何使用ContentResolver从此Uri获取实际文件名或内容标题?

android android-contentresolver

13
推荐指数
3
解决办法
2万
查看次数

如何在Ember.js中使用HTML5本地存储?

我想在我的Ember.js中使用HTML5 Local Storage.

没有Ember Data,我无法找到任何这样做的例子.

该怎么做?我需要考虑什么?

html5 local-storage ember.js

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

Ruby将DateTime转换为毫秒

如何将此JavaScript函数转换为Ruby?

new Date().getTime()
Run Code Online (Sandbox Code Playgroud)

返回:

1384520363488

我无法使用Ruby DateTime,TimeAt等获得相同的答案.

ruby date

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

使用utf8的mysqldump无法导出正确的表情符号字符串

我使用MySQL 5.5.29,utf8mb4字符集,有一个表用户包含一个nickname值为hex 的字段F09F988EF09F988E转换为表情符号.

现在打开MySQL控制台,并执行:


set names utf8mb4;
select nickname, hex(nickname) from user;
Run Code Online (Sandbox Code Playgroud)
nickname | hex(nickname)
---------+-----------------
    | F09F988EF09F988E
Run Code Online (Sandbox Code Playgroud)

然后执行:

mysqldump --default-character-set=utf8 -utest -ptest test_dev user > user.sql
Run Code Online (Sandbox Code Playgroud)

检查user.sql并找到昵称显示??哪个十六进制字符串是3f

那么,mysqldump如何用UTF8导出正确的emojis字符串呢?


顺便说一句,数据库字符集环境配置如下:显示'character_set_%'之类的变量:

'character_set_client', 'utf8mb4'
'character_set_connection', 'utf8mb4'
'character_set_database', 'utf8mb4'
'character_set_filesystem', 'binary'
'character_set_results', 'utf8mb4'
'character_set_server', 'utf8mb4'
'character_set_system', 'utf8'
'character_sets_dir', '/data/mysql/share/charsets/'
Run Code Online (Sandbox Code Playgroud)

mysql utf-8 character-encoding emoji

13
推荐指数
2
解决办法
9571
查看次数

为什么Cordova Browser-Sync插件无法在干净的全新Apache Cordova应用程序上运行?

注意:此问题也来自Cordova Browser-Sync插件的官方GitHub存储库中的多方.在此发布此内容以引起对该问题的更多关注,并了解某人是否有任何见解或实际解决方案.


我是Apache Cordova世界的新手,但是能够流畅地进行全栈LAMP开发.也就是说,我对这个问题感到困惑:当我创建一个基本/简单的Apache Cordova测试应用程序并添加Cordova Browser-Sync插件时,我可以在我的www/目录中进行更改,然后看到它们立即反映在platforms/browser/www/我的打开浏览器中窗口没有重载.我必须强制重新加载以使更改反映在浏览器中.

我在Mac OS X 10.10.5(Yosemite)上运行这一切,NodeJS是4.4.0,NPM是2.14.20,Cordova是6.0.0,Cordova Browser-Sync插件是0.1.1.

我设定的步骤如下:首先创建一个像这样的新应用:

cordova create MyApp
Run Code Online (Sandbox Code Playgroud)

然后我进入这样的目录:

cd MyApp
Run Code Online (Sandbox Code Playgroud)

并设置我的简单"浏览器"Cordova应用程序,如下所示:

cordova platform add browser
Run Code Online (Sandbox Code Playgroud)

最后的测试就是像这样运行应用程序:

cordova run browser
Run Code Online (Sandbox Code Playgroud)

好的,所以我们知道简单的"Hello world."测试工作.现在我将添加Cordova Browser-Sync插件,如下所示:

cordova plugin add cordova-plugin-browsersync
Run Code Online (Sandbox Code Playgroud)

一切都很好,现在我将测试这样的应用程序:

cordova run browser -- --live-reload
Run Code Online (Sandbox Code Playgroud)

如果我在文件中进行更改,浏览器根本不会按照描述"实时重新加载"; 除非我遗失了什么?该命令的输出是:

Running command: /Users/jakegould/Desktop/MyApp/platforms/browser/cordova/run --live-reload
Static file server running on port 8000 (i.e. http://localhost:8000)
CTRL + C to shut down
Static file server running @ http://localhost:8000/index.html
CTRL + …
Run Code Online (Sandbox Code Playgroud)

javascript node.js cordova

13
推荐指数
2
解决办法
5092
查看次数