小编Mar*_*rry的帖子

如何使用Twitter bootstrap-responsive来更改导航栏崩溃阈值?

我在Rails 3.1.2项目中使用Twitter Bootstrap 2.0.1,使用bootstrap-sass实现.我正在加载文件bootstrap.cssbootstrap-responsive.css文件,以及bootstrap-collapse.jsJavascript.

我有一个带有类似示例的导航栏的流畅布局.这遵循此处的导航栏"响应变化"说明.它工作正常:如果页面比约940px窄,导航栏会折叠并显示一个"按钮",我可以单击该按钮进行展开.

然而,我的导航栏看起来很好,大约550px宽,即它不需要折叠,除非屏幕非常窄.

如果屏幕宽度小于550px,我如何告诉Bootstrap仅折叠导航栏?

请注意,在这一点上我希望修改其它响应行为,如堆叠的元素,而不是并排显示他们一边.

css ruby-on-rails-3 twitter-bootstrap

94
推荐指数
5
解决办法
11万
查看次数

如何在PowerShell中测试$ null数组

我在PowerShell 2.0中使用了一个数组变量.如果没有值,则为$ null,我可以成功测试:

PS C:\> [array]$foo = $null
PS C:\> $foo -eq $null
True
Run Code Online (Sandbox Code Playgroud)

但是当我给它一个值时,$ null的测试不会返回任何内容:

PS C:\> [array]$foo = @("bar")
PS C:\> $foo -eq $null
PS C:\>
Run Code Online (Sandbox Code Playgroud)

"-eq $ null"怎么没有结果?它要么是$ null,要么不是.

确定是否填充数组与$ null相关的正确方法是什么?

powershell null

44
推荐指数
5
解决办法
14万
查看次数

同时使用帐户和用户表与Devise

我正在使用Rails 3.1.0和Devise 1.4.8,对我们两个都是新手.

我想允许多个用户使用帐户.第一个注册用户创建帐户(可能是他们的公司),然后该用户可以添加更多用户.用户始终只链接到一个帐户.

我有用户和帐户表.缩写模型:

class User < ActiveRecord::Base
  belongs_to :account
  devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable,
     :confirmable, :lockable, :timeoutable
  attr_accessible :email, :password, :password_confirmation, :remember_me
end

class Account < ActiveRecord::Base
  has_many :users, :dependent => :destroy
  attr_accessible :name, :account_type
end
Run Code Online (Sandbox Code Playgroud)

问题是,当第一个用户注册时,如何创建帐户和用户?

  • 我是否需要修改/覆盖Devise registrations_controller,就像这里的答案一样?我无法弄清楚如何创建帐户然后将其传递给Devise以创建用户.

  • account_id已在User模型中.我应该将account_name和account_type添加到用户模型,如果未传入account_id,还要创建一个新的帐户记录?在这种情况下,我试图隐藏Devise中的帐户创建,但不确定这是否有效,因为我仍然需要在注册页面上提示account_name和account_type.

authentication ruby-on-rails devise ruby-on-rails-3

19
推荐指数
1
解决办法
5930
查看次数

如何在Rails语言环境文件中更改插值变量的大小写?

使用Rails 3.1.3和Ruby 1.9.3p0.

我发现默认情况下,Rails不会对表单按钮使用句子大小写.例如,它不是"更新用户"按钮,而是生成"更新用户"按钮.

按钮名称来自ActionView语言环境文件.有没有办法创建一个下调模型名称的默认值?关于插值的Ruby on Rails Guides i18n部分没有涉及到这一点,所以也许这是不可能的.以下不起作用:

en:
  helpers:
    submit:
      update: 'Update %{model}.downcase'
Run Code Online (Sandbox Code Playgroud)

一般来说,我很乐意找到语言环境YAML文件语法的参考.i18n指南涵盖了一些语法,但是查找所有感叹号,各种日期/时间格式等文档会很有帮助.或者我可能为此目的使用Ruby Hash而不是YAML文件?

internationalization ruby-on-rails-3.1

11
推荐指数
1
解决办法
2581
查看次数

使用参数("By Reference"参数)从PowerShell返回对象?

我有一个PowerShell(2.0)脚本调用另一个.我不仅要接收主输出,还要接收我可以单独使用的其他对象,例如在消息中显示摘要行.

让我们在调用脚本时使用Test2.ps1:

param([String]$SummaryLine)
$Issues = "Potentially long list of issues"
$SummaryLine = "37 issues found"
$Issues
Run Code Online (Sandbox Code Playgroud)

并且Test1.ps1作为调用它的脚本:

$MainOutput = & ".\Test2.ps1" -SummaryLine $SummaryOutput
$MainOutput
$SummaryOutput
Run Code Online (Sandbox Code Playgroud)

输出很简单:

Potentially long list of issues
Run Code Online (Sandbox Code Playgroud)

尽管参数$ SummaryLine由Test2填充,但$ SummaryOutput在Test1中仍未定义.

在调用Test2之前定义$ SummaryOutput没有帮助; 它只是在调用Test2之前保留指定的值.

我已经尝试将$ SummaryOutput和$ SummaryLine设置为[ref]变量(显然可以使用函数),但是在调用Test2之后,$ SummaryOutput.Value属性为$ null.

PowerShell中是否可以返回参数中的值?如果没有,有哪些解决方法?在Test2中直接分配父范围变量?

parameters powershell scope byref

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

rails3-jquery-autocomplete:如何使用RSpec和Capybara进行测试?

我正在使用Rails 3.2.8

  • gem'jquery-rails','2.1.2'
  • gem'trail3-jquery-autocomplete','1.0.9'
  • 宝石'rspec-rails','2.11.4'
  • 宝石'capybara','1.1.3'
  • gem'capybara-webkit','0.12.1'

我最近将选择下拉列表转换为自动完成(使用rails3-jquery-autocomplete),并且我正在尝试更新我的请求规范以填写自动完成.

我的方法是创建一个帮助如图这一要点:

def fill_autocomplete(field, options = {})
  fill_in field, :with => options[:with]

  selector = "ul.ui-autocomplete a:contains('#{options[:select]}')"

  page.should have_selector selector
  page.execute_script "$(\"#{selector}\").mouseenter().click()"
end
Run Code Online (Sandbox Code Playgroud)

如果我使用Webkit测试,测试将失败并显示以下消息:

expected css "ul.ui-autocomplete a:contains('Firstname Lastname')" to return something.
Run Code Online (Sandbox Code Playgroud)

如果我用Selenium测试,当我看到在Firefox的测试继续,我也没有看到下拉选择列表中出现.添加sleep 3等待下拉列表无济于事.

在这里看到capybara-webkit存在一个相关但有点旧的问题,关于何时填充字段,它会立即模糊,这当然会阻止自动完成选择列表出现.但这似乎与那些已经开始工作的人并不相符.

目前是否可以使用RSpec和Capybara测试包含rails3-jquery-autocomplete字段的表单?怎么样?如果没有,有没有办法手动填写相应的隐藏id字段,所以我仍然可以测试表单创建正确的数据?

jquery rspec jquery-ui ruby-on-rails capybara

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

如果与同一模型有两个belongs_to关系,则Rails ActiveRecord会构建错误的外键

使用Rails 3.2.3,我有用户和消息模型.每条消息都由用户拥有,每条消息都有一个可选的from_user字段,该字段也带有user.id.

应用程序/模型/ user.rb

class User < ActiveRecord::Base
  has_many :messages, :foreign_key => "owner_id",     :inverse_of => :owner
  has_many :messages, :foreign_key => "from_user_id", :inverse_of => :from_user
end
Run Code Online (Sandbox Code Playgroud)

应用程序/模型/ message.rb

class Message < ActiveRecord::Base
  belongs_to :owner, :class_name => "User", :inverse_of => :messages
  validates  :owner, :presence => true   # Every message must have an owner_id

  belongs_to :from_user, :class_name => "User", :inverse_of => :messages
end
Run Code Online (Sandbox Code Playgroud)

我看到的问题是该.build方法.使用的主要原因.build是实例化一个(可能受保护的)外键,对吧?(请参阅活动记录关联的Rails指南:"将创建通过其外键的链接.")但是当我运行时

@message = @user.messages.build(<accessible attributes>)
Run Code Online (Sandbox Code Playgroud)

我发现它填写了可选项from_user不是强制项owner.

有没有办法控制哪个外键.build …

activerecord ruby-on-rails-3

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

Ruby on Rails regexp equals-tilde与array包括用于检查选项列表

我正在使用Rails 3.2.3和Ruby 1.9.3p0.

我发现我经常要确定一个字符串是否出现在选项列表中.看来我可以使用Ruby数组.include方法:

<% if ['todo','pending','history'].include?(params[:category]) %>
Run Code Online (Sandbox Code Playgroud)

或正则表达式equals-tilde匹配速记与垂直条分隔选项:

<% if params[:category] =~ /todo|pending|history/ %>
Run Code Online (Sandbox Code Playgroud)

在性能方面,一个比另一个好吗?

还有更好的方法吗?

ruby regex ruby-on-rails-3

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

在Bootstrap Ajax模式中使用simple_form显示内联错误

我在这里这里找到了类似的StackOverflow问题,但仍然无法使其工作.

我正在使用Rails 3.2.8,SimpleForm 2.0.4和Twitter Bootstrap 2.1.1(通过bootstrap-sass gem 2.1.1.0).

用户应该能够从模态弹出窗口添加联系人.如果存在验证错误,它们应该显示为内联,就像用户使用表单的非模态版本(字段周围的红色边框,字段旁边的错误消息)一样.

我像这样加载模态:

<a data-toggle="modal" data-target="#new-contact-modal">Go modal!</a>
Run Code Online (Sandbox Code Playgroud)

这是Bootstrap模式,它调用contacts/contact_fields非模态版本中使用的相同部分.app/views/contacts/_new_modal.html.erb:

<div id="new-contact-modal" class="modal hide fade" tabindex="-1" 
     role="dialog" aria-labelledby="new-contact-modal-label" 
     aria-hidden="true">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" 
     aria-hidden="true">×</button>
    <h3 id="new-contact-modal-label"><%= t("contacts.new.header") %></h3>
  </div>
  <%= simple_form_for(@contact, 
      :remote => true,
      :html => {:class => "form-horizontal", 
                "data-type" => :json }) do |contact_form| %>
    <div id="new-contact-body" class="modal-body">
      <%= render 'contacts/contact_fields', :f => contact_form %>
    </div>
    <div class="modal-footer">
      <%= contact_form.submit :class => "btn btn-primary", …
Run Code Online (Sandbox Code Playgroud)

jquery simple-form twitter-bootstrap ruby-on-rails-3.2

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

如何将pg_dump和pg_restore安装到heroku

我必须将pg_dump和pg_restore加载到Heroku,以便我可以将本地数据库加载到Heroku.如何在Heroku上安装pg_dump和pg_restore?他们的地址是什么?

heroku

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

Heroku上的rufus-scheduler和delayed_job:为什么要使用工作器dyno?

我正在开发一个Rails 3.2.16应用程序,并使用一个免费的网络dyno和没有工作人员dynos部署到Heroku开发帐户.我正在试图确定是否真的需要(付费)工人dyno.

该应用程序发送各种电子邮件.我使用delayed_job_active_record对它们进行排队并将它们发送出去.

我还需要每分钟检查一次通知计数.为此,我使用rufus-scheduler.

rufus-scheduler似乎能够 Heroku web dyno中运行后台任务/线程.

另一方面,我在delayed_job上找到的所有内容都表明它需要一个单独的工作进程.为什么?如果rufus-scheduler可以在web dyno中运行守护进程,为什么delayed_job不能这样做呢?

我已经测试了以下内容,用于运行我的每分钟任务处理delayed_jobs,它似乎在单个Heroku web dyno中工作:

配置/初始化/鲁弗斯-scheduler.rb

require 'rufus-scheduler'
require 'delayed/command'

s = Rufus::Scheduler.singleton
s.every '1m', :overlap => false do # Every minute
  Rails.logger.info ">> #{Time.now}:  rufus-scheduler task started"
  # Check for pending notifications and queue to delayed_job
  User.send_pending_notifications
  # work off delayed_jobs without a separate worker process
  Delayed::Worker.new.work_off  
end
Run Code Online (Sandbox Code Playgroud)

这似乎很明显,我想知道我是否遗漏了什么?这是处理delayed_job队列的可接受方式,而不会增加单独的工作进程的复杂性和费用吗?

更新

正如@jmettraux所指出的,Heroku将在一小时后闲置一个不活动的网络dyno.我还没有设置它,但让我们假设我正在使用各种保持活动方法中的一种来防止它睡眠: 简单的方法来防止Heroku空转?.

heroku delayed-job rufus-scheduler ruby-on-rails-3

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

Is COMB GUID a good idea with Rails 3.1 if I use GUIDs for primary keys?

I'm using Rails 3.1 with PostgreSQL 8.4. Let's assume I want/need to use GUID primary keys. One potential drawback is index fragmentation. In MS SQL, a recommended solution for that is to use special sequential GUIDs. One approach to sequential GUIDs is the COMBination GUID that substitutes a 6-byte timestamp for the MAC address portion at the end of the GUID. This has some mainstream adoption: COMBs are available natively in NHibernate (NHibernate/Id/GuidCombGenerator.cs).

I think I've figured out …

uuid activerecord guid ruby-on-rails ruby-on-rails-3.1

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