小编ard*_*vis的帖子

我如何清除所有铁路会话?

这是我的代码:

if session[:firsttimestart].nil? 
else
  @firsttime = false
end

if @firsttime == true
  initglobals()
end
session[:firsttimestart]=false
Run Code Online (Sandbox Code Playgroud)

问题是当我关闭服务器并返回应用程序时,会话[:firsttimestart]仍为false.它以某种方式将此变量存储在我的系统中而没有到期日期,因此不会调用iniglobals().我试图使用rake tmp:clear但它没有用.每次重新启动服务器时,如何清除系统中正在使用的所有会话?

session ruby-on-rails

29
推荐指数
4
解决办法
3万
查看次数

你如何在SVG中做出一个块评论

我正在尝试第一次学习SVG,但代码似乎与我的块注释有问题.我正在使用:

/* This is my
 * block comment
 */
Run Code Online (Sandbox Code Playgroud)

当我运行我的代码时,我收到以下错误:

'return' statement outside of function
line: 116, column: 4
Run Code Online (Sandbox Code Playgroud)

这恰好发生在我的块评论之前.

svg comments block-comments

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

Rails"find_all_by"vs".where"

我有以下代码:

def maturities
  InfoItem.find_all_by_work_order(self.work_order).map(&:maturity)
end
Run Code Online (Sandbox Code Playgroud)

我正考虑将其更改为:

def maturities
  InfoItem.where(work_order: self.work_order).map(&:maturity)
end
Run Code Online (Sandbox Code Playgroud)

这有什么好处吗?这似乎.wherefind_all_by现在更常见.

ruby-on-rails where dynamic-finders

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

Rails模型,属于很多

我很难弄清楚如何将我的一个模型与另一个模型联系起来.

就像现在一样,我有:

class ModelA < ActiveRecord::Base
  has_many :model_b
end

class ModelB < ActiveRecord::Base
  belongs_to :model_a
end
Run Code Online (Sandbox Code Playgroud)

但是...... ModelB不仅需要属于ModelA的一个实例,而且可能属于三个.我知道有一个has_many:through,但我不确定它在这种情况下会如何起作用.ModelA的每个实例总是会有三个ModelB实例.但如前所述,ModelB不仅可以属于ModelA的一个实例.

ruby-on-rails associations model-associations ruby-on-rails-3

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

为什么文件存在时偶尔会发生丢失的部分错误?

在运行Cucumber测试时,它会不时地间歇性地失败.错误是:

*** ActionView::Template::Error Exception: Missing partial items/_fields with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :haml]}. Searched in:
  * "/my/path/to/application/app/views"
  * "/my/path/to/rvm/gems/ruby-2.1.5/gems/kaminari-0.16.3/app/views"
  * "/my/path/to/rvm/gems/ruby-2.1.5/gems/devise-3.5.4/app/views" 
Run Code Online (Sandbox Code Playgroud)

是的,部分文件确实存在于 /my/path/to/application/app/views/items/_fields.html.haml

踢球者有时候测试会通过,有时候会失败.我在Red Hat 5机器上运行.

所以为了调试这个,我决定投入一个begin/rescue.

.fields
  - begin
    = render partial: 'items/fields', locals: {f: f}
  - rescue Exception => e
    = byebug

  - if f.can_modify?(:object_a)
    = render partial: 'layouts/object_a_field', locals: {f: f, field: :object_a}
   - else
    .field#object_a
      = render partial: 'layouts/attribute', locals: {label: 'Object A', value: f.object.object_a_id ? f.object.object_a_number : 'Not Assigned'} …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails

21
推荐指数
1
解决办法
2411
查看次数

使用Rspec,Devise和Factory Girl测试用户模型

我认为我的用户工厂正在构建中存在问题.我收到一个错误,说密码不能为空,但它明确地设置在我的workers.rb中.有没有人看到我可能遗失的任何东西?或者为什么规范失败的原因?我为其他一个模型做了一个非常类似的事情,它似乎很成功.我不确定错误是否是由设计引起的.

Rspec错误

User should create a new instance of a user given valid attributes
Failure/Error: User.create!(@user.attributes)
ActiveRecord::RecordInvalid:
  Validation failed: Password can't be blank
# ./spec/models/user_spec.rb:28:in `block (2 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)

Factories.rb

Factory.define :user do |user|
  user.name                   "Test User"
  user.email                  "user@example.com"
  user.password               "password"
  user.password_confirmation  "password"
end
Run Code Online (Sandbox Code Playgroud)

user_spec.rb

require 'spec_helper'

describe User do
  before(:each) do
    @user = Factory.build(:user)
  end

  it "should create a new instance of a user given valid attributes" do
    User.create!(@user.attributes)
  end
end
Run Code Online (Sandbox Code Playgroud)

user.rb

class User < ActiveRecord::Base
  # …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails devise factory-bot

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

如何检查值是否在值数组中找到

我想执行if条件,其中,如果linkedpub.LPU_ID在值数组(@associated_linked_pub)中找到,则执行一些操作.

我尝试了以下但语法不正确.

任何建议都是最受欢迎的......谢谢

<% for linkedpub in Linkedpub.find(:all) %>
   <% if linkedpub.LPU_ID IN @associated_linked_pub  %>
       # do action
   <%end%>
<%end%>
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

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

启动Rails服务器时自动运行Faye服务器

我目前让Faye使用我的Rails 3.0.9应用程序.但是我在终端上打开了两个单独的标签.一个用于Faye服务器,一个用于Rails服务器.如何在Rails启动时集成它们并自动运行Faye服务器?

为了启动Faye Server,我正在运行:

rackup faye.ru -s thin -E production
Run Code Online (Sandbox Code Playgroud)

faye.ru

require 'faye'
faye_server = Faye::RackAdapter.new(:mount => '/faye')
run faye_server
Run Code Online (Sandbox Code Playgroud)

如果您需要更多信息,请与我们联系.

ruby-on-rails ruby-on-rails-3 faye

17
推荐指数
2
解决办法
8436
查看次数

Capybara,在css元素中找到

我正在使用Ruby on Rails 3,Cucumber和Capybara

我已经搜索了一段时间,我无法弄清楚如何在css标签中找到特定的页面元素.在我的情况下,我需要确保在表格中找到名称,而不是在"欢迎[名称]"中.

我尝试过类似的东西:

within('table') do
  page.body.index("[Name]")
end
Run Code Online (Sandbox Code Playgroud)

我有一张桌子id='table'.

但我想知道如何为任何css元素执行此操作,例如:

within('h2') do
  page.body.should have_content ('stuff')
end
Run Code Online (Sandbox Code Playgroud)

我认为我的问题与page.body有关,但我不确定如何将其包含在特定的css标签中.

提前致谢!

testing ruby-on-rails cucumber capybara

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

Rails 3.1部署到Heroku错误

我正在尝试将我的应用程序部署到Heroku,我之前在我的Windows机器上完成了这个,现在我正在使用mac.

我第一次尝试使用Postgresql.

我的Gemfile中有以下内容:

gem 'pg'
Run Code Online (Sandbox Code Playgroud)

编辑:

AndrewDavis-OSX:lunchbox ardavis$ rvm list

rvm rubies

=> ruby-1.9.2-p180 [ x86_64 ]

AndrewDavis-OSX:lunchbox ardavis$ heroku rake db:migrate
rake aborted!
/app/config/initializers/session_store.rb:3: syntax error, unexpected ':', expecting $end
App::Application.config.session_store :cookie_store, key: '_app_session'
                                                        ^

(See full trace by running task with --trace)
(in /app)
Run Code Online (Sandbox Code Playgroud)

如您所见,我正在运行ruby 1.9.2.我的heroku迁移有错误.

编辑2:

刚刚使用Rails 3.1.rc1创建了一个全新的rails应用程序.我将gemfile设置为include

组:制作做宝石'therubyracer-heroku','0.8.1.pre3'gemite'pg'结束

我做了一个快速的git init,提交,然后'heroku create'和'git push heroku master'.一切都很好.然而问题是当我尝试'heroku rake db:migrate'时.我得到了你上面看到的同样的错误.

TEMP FIX编辑:

所以...如果我更改我的config/initializers/session_store.rb

App::Application.config.session_store :cookie_store, key: '_app_session'
Run Code Online (Sandbox Code Playgroud)

App::Application.config.session_store :cookie_store, :key => '_app_session'
Run Code Online (Sandbox Code Playgroud)

并更改我的config/initializers/wrap_parameters.rb

ActionController::Base.wrap_parameters format: [:json]
Run Code Online (Sandbox Code Playgroud)

ActionController::Base.wrap_parameters :format …
Run Code Online (Sandbox Code Playgroud)

deployment ruby-on-rails heroku initializer ruby-on-rails-3.1

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