小编ssc*_*rus的帖子

Rails:将@cars显示为以逗号分隔的列表

基于此查询:

@cars = Car.where("manufacturer_id IN ?", @mfts.select("id")).limit(30).select("id")
Run Code Online (Sandbox Code Playgroud)

如何在视图中显示汽车的ID(或者我是否需要重写查询)?

3,2,5,12,15,24,34,63,64,65,66,85

非常感谢 - 我已经找到了这个,但找不到合适的问题/答案.


一种解决方案是:

#view
<% @cars.each do |c| %><%= c.id %>,<% end %>
Run Code Online (Sandbox Code Playgroud)

我不知道是否有更好的方法去做 - 这显然在列表的末尾留下了一个流浪逗号(这不是一个破坏者).更优雅的解决方案?

activerecord ruby-on-rails ruby-on-rails-3

8
推荐指数
3
解决办法
6327
查看次数

在Rails中使用自动完成功能进行标记

我的(很久,我道歉)问题是后续:如何在Rails中将自动完成标记添加到现有模型中?

我正在使用acts-as-taggable-onrails3-jquery-autocomplete尝试建立一个系统(很像Stack Overflow),用户开始输入标签,并在下拉框中显示建议.

目标

我在#new表单的答案中,我希望看到与问题相关的标签列表.即想象一下正在寻找新的Rails问题来回答和搜索ra.Ruby-on-Rails弹出,点击它,你会看到RoR下的问题列表,你可以回答其中任何一个问题.

这些是我采取的步骤.

  1. 安装了两个宝石.两者似乎都是独立工作的.
  2. 补充说<%= javascript_include_tag "ui/jquery.ui.position", "ui/jquery.ui.autocomplete", "autocomplete-rails.js", "rails.js", "application.js" %>.(我已经拥有Jquery,UI Core和UI Effects.)
  3. 答案控制器:我在顶部添加autocomplete :question, :tags, :full => true.我也试过了autocomplete :tag, :name, :full => true.
  4. Question.rb : acts_as_taggable_on :tags.
  5. 视图:
    <%= form_tag new_answer_url, :method => "get" do %>
    <%= autocomplete_field_tag "tag_list", 'tags', autocomplete_question_tags_answers_path %>
    <% end %>

一个简单的自动完成(没有标记)可以工作(但每页加载只能工作一次).有了标记,没有成功.

问题

经过大量的实验(以及许多小时),我遇到了这些问题:

  1. 我得到NameError (unitialized constant Tag)服务器响应初始条目.
  2. 使用不可标记的实现(搜索简单的问题文本本身),我得到一个JQuery …

jquery-ui autocomplete ruby-on-rails acts-as-taggable-on ruby-on-rails-3

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

专业有用且安全的文件类型列表?

我有一个系统,用户可以在其中上传任何东西 - 这些文件可供其他用户使用。

我需要列出不同行业专业人员真正需要的文件类型列表,这些文件类型不会受到黑客攻击/病毒等的侵害。

.doc .docx .gif .jpg .jpeg .mpg .mpeg .mp3 .odt .odp .ods .pdf .ppt .pptx .tif .tiff .txt .xls .xlsx .wav

您还知道哪些既有用又安全的其他文件类型?

澄清

许多评论和回复都要求对“免受黑客攻击/病毒攻击”提供更清晰的定义——我问这个问题的详细程度正是因为我对文件类型及其风险的理解不如许多人那么深入你这样做,我想1)任何文件类型2的指导,可能让我的网站更安全,)如果没有“安全”的文件类型,然后就如何一个系统,允许灵活的上传前进的任何建议和文件共享。

如果确实可以将任何恶意文件打包为看似安全的文件,我该如何保护我的用户?

security file-type ruby-on-rails whitelist

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

用于暂存应用与生产应用的不同S3存储桶

我有一个使用Amazon S3存储Paperclip附件的Rails应用程序.我的database.yml文件为开发,测试和生产指定了不同的S3存储桶.

我在Heroku上有两个应用程序 - 一个生产应用程序和一个"临时应用程序",用于在平台预启动时测试代码.

当前的系统有一个重要的缺陷 - 它使用相同的S3桶进行分段和生产.我如何设置我的系统,以便它使用不同的桶,具体取决于我是否写git push production mastergit push staging master

ruby-on-rails amazon-s3 ruby-on-rails-3

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

如何选择父母的兄弟姐妹

HTML:

<div class="parent"> 
  <input></input> 
  <button></button> 
</div> 
<div class="siblings"> 
  <p class="children"></p> 
</div> 
Run Code Online (Sandbox Code Playgroud)

jQuery的:

$('button').click(function(){ 
  if($(this).siblings('input') != ""){ 
    var addTo = $(this).siblings('input').val(); 
    $(this).parent('parent').siblings('siblings').children('children').html(addTo); 
  } 
}); 
Run Code Online (Sandbox Code Playgroud)

为什么不起作用?我想从输入中获取值,并替换内容p.

jquery

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

Rails 3:Google Apps/Heroku的SMTP设置

以下是setup_mail.rb中Google Apps的smtp设置.

  :address              => "smtp.gmail.com",  
  :port                 => 587,                 
  :domain               => 'mysite.co',  
  :user_name            => 'noreply@mysite.co',      
  :password             => 'password',      
  :authentication       => 'plain',             
  :enable_starttls_auto => true
Run Code Online (Sandbox Code Playgroud)

我的开发日志详细显示了生成的电子邮件并发送到正确的电子邮件地址......但它们没有到达.我只能认为上面的设置一定有问题.你能看出问题所在吗?

一旦解决了这个问题,我有什么问题可以让它在Heroku上运行吗?


注意:以上是记录弃用警告:

DEPRECATION WARNING: Giving a hash to body is deprecated, please use instance va
riables instead. (called from process at C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gem
s/actionmailer-3.0.0/lib/action_mailer/old_api.rb:77)
Run Code Online (Sandbox Code Playgroud)

smtp ruby-on-rails actionmailer heroku ruby-on-rails-3

6
推荐指数
3
解决办法
9853
查看次数

'mysql的未定义方法init:Class'

我一直遇到MySQL服务器安装问题,在停电后搞砸了.

组态

Intel i5 Mac运行OS X 10.6.5
Ruby 1.9.2安装
Rails 3.0.1安装
MySQL Server(最后)安装并运行
我完全重新安装了MySQL,后者删除了本地开发/测试/生产数据库.所以,我已经create database development;在MySQL中运行以使dev数据库为迁移做好准备.

目前的目标

  • 运行rake db:migrate以重新获取我的数据库.(我目前无法从Rails访问我的数据库或Mysql.)

错误

使用gem 'mysql', '2.8.1'并运行rake db:migrate,我收到错误:

rake aborted!
undefined method 'init' for Mysql:Class
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

/Users/sscirrus/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/connection_adapters/mysql_adapter.rb:30:in 'mysql_connection'
/Users/sscirrus/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:230:in 'new_connection'
/Users/sscirrus/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:238:in 'checkout_new_connection'
/Users/sscirrus/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:194:in 'block (2 levels) in checkout'
/Users/sscirrus/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:190:in 'loop'
/Users/sscirrus/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:190:in 'block in checkout'
/Users/sscirrus/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/monitor.rb:201:in 'mon_synchronize'
/Users/sscirrus/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:189:in 'checkout'
/Users/sscirrus/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:96:in 'connection'
/Users/sscirrus/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:318:in 'retrieve_connection'
/Users/sscirrus/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/connection_adapters/abstract/connection_specification.rb:97:in 'retrieve_connection'
/Users/sscirrus/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/connection_adapters/abstract/connection_specification.rb:89:in 'connection'
/Users/sscirrus/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/migration.rb:486:in 'initialize'
/Users/sscirrus/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/migration.rb:433:in 'new'
/Users/sscirrus/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/migration.rb:433:in 'up'
/Users/sscirrus/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/migration.rb:415:in 'migrate'
/Users/sscirrus/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/railties/databases.rake:142:in 'block (2 …
Run Code Online (Sandbox Code Playgroud)

mysql macos ruby-on-rails ruby-on-rails-3

6
推荐指数
1
解决办法
9490
查看次数

Delayed_job与Appoxy SimpleWorker

当我在Heroku上找到Appoxy SimpleWorker时,我正准备开始使用delayed_job并在我的应用程序上运行.

Appoxy表示它大规模并行,并且可以上下调整工作人员以最大限度地降低成本.但是,在我看来,使用HireFire,delayed_job也是如此.这是我的问题:你会选择哪个:delayed_job + HireFire或SimpleWorker?(为什么?)

https://github.com/tobi/delayed_job
http://hirefireapp.com/
http://addons.heroku.com/simple_worker

我的应用程序目前很小 - 音量很低,应用程序的数量不应该非常高.


还有什么人可以期望直接从这两项服务的创始人那里得到回复?谢谢Michael和Travis!

ruby-on-rails heroku delayed-job ruby-on-rails-3 hirefire

6
推荐指数
1
解决办法
783
查看次数

减少cancan中ability.rb的负载

我有一个很大的能力文件,可以通过搜索"角色"表来确定用户可以做些什么.每个角色对应于特定用户可以执行的操作,例如,能够添加项目或能够编辑主公司记录.

目前,每个运行的控制器操作load_and_authorize_resource都会经过> 30个语句,如:

ability.rb (>30 times)
Role.where("user_id = ? AND role = ? AND roleable_type = ? AND roleable_id IS NULL", user.id, "delete", "task").last.present? ? (can :destroy, Task) : nil
Run Code Online (Sandbox Code Playgroud)

这是一个非常低效的解决方案,因为服务器在执行任何操作之前运行> 30个查询.

执行此操作的最佳方法是仅根据控制器和视图所需的内容运行需要运行的查询.有没有办法做到这一点?

ruby-on-rails query-optimization cancan ruby-on-rails-3

6
推荐指数
1
解决办法
899
查看次数

HID设备可以接收哪些数据?

我正在设计一个具有特殊功能的USB键盘.这样的HID设备可以从主机接收哪些信息?

我可以通过USB:

  • 从屏幕上的表格中读取数据?
  • 找出用户所使用的操作系统?
  • 找出是否有错误消息?
  • 甚至"知道"屏幕上可视化的内容,即选择了什么程序或者程序是窗口还是全屏?

谢谢!

keyboard hid

6
推荐指数
1
解决办法
1628
查看次数