小编Bee*_*Bee的帖子

Ruby on rails应用程序root

如何更改rails应用程序以使控制器foo显示为应用程序根目录?

换句话说,现在所有的网址看起来像host.com/foo/...我想摆脱foo,只需要host.com/...

routes ruby-on-rails

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

rails 3:format.csv给出"无模板错误",但format.json不需要模板

为什么这会渲染:json没有模板,但不渲染:csv?

在我的datapoints_controller的索引方法中:

respond_to do |format|
  format.json { render :json => @goal.datapoints.all }      
  format.csv { render :csv => @goal.datapoints.all }
end
Run Code Online (Sandbox Code Playgroud)

将我的浏览器指向/datapoints.json会将该集合呈现为屏幕上的json字符串.将它指向/datapoints.csv会出错:

Template Missing: with {:locale=>[:en, :en], :formats=>[:csv],
                         :handlers=>[:rhtml, :rxml, :erb, :builder, :rjs]}
Run Code Online (Sandbox Code Playgroud)

Datapoint的一个实例响应to_csv,但即使我手动将其映射为csv格式并将其呈现为文本,它也会产生模板缺失错误,因此,例如我尝试过这样的事情:

format.csv { render @goal.datapoints.map{|d| d.to_csv }.join "\n" }
Run Code Online (Sandbox Code Playgroud)

rendering ruby-on-rails ruby-on-rails-3

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

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

如何使所有连接的浏览器重新加载由服务器端事件启动

假设有一个包含动态生成内容的网页 - 比如包含当前已连接浏览器数量的div.当计数在服务器上发生变化时,我希望所有连接的浏览器重新加载计数,以便每个人都能看到增量/减量.

实现这一目标的最佳方法是什么?

关键字:ajax,广播,浏览器,div,jquery

ajax push comet server-push push-notification

4
推荐指数
2
解决办法
2957
查看次数

整数线性规划:示例和好工具?

找到最小化 c 的向量 x 。x 受约束 m 。x >= b,x 整数。

这是一个示例输入集:

c : {1,2,3}
m : {{1,0,0},
     {0,1,0},
     {1,0,1}}
b : {1,1,1}
Run Code Online (Sandbox Code Playgroud)

有输出:

x = {1,1,0}
Run Code Online (Sandbox Code Playgroud)

什么是解决此类问题的好工具,以及如何使用它们的示例?

mathematical-optimization linear-programming

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

jQuery:什么是"输入[@checked],输入[@type ='text']"发现?

我继承了一些javascript,并不是所有的工作都在按预期进行.这是一个难点:

jQuery("#theForm")
  .find("input[@checked], input[@type='text'], options[@selected], textarea")
  .each(function() { ... });
Run Code Online (Sandbox Code Playgroud)

我不熟悉[@]语法(虽然它似乎很清楚它想要发生什么),而且我找不到文档.谁能告诉我这是否是有效的jquery?

jquery jquery-selectors

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

闪存通知持续存在于rails控制器中

我有一个控制器,其中包含更新模型属性的更新方法,如果成功则为用户设置闪存通知,然后再次呈现编辑页面.当我加载/呈现页面时,我点击相同闪存通知的下一个链接会再次弹出.这是怎么回事?如何让flash [:notice]只显示一次?为什么它会持续进入下一个响应?

控制器:

def update
  respond_to do |format|
    if @resource.update_attributes(params[:resource])
      flash[:notice] = "Resource successfully updated"
      format.html{ render :action => "edit" }
    else
      format.html{ render :action => "edit" }
    end
  end
end  
Run Code Online (Sandbox Code Playgroud)

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

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

如何控制水豚/phantomjs测试的时间

我想测试一些截止日期是否在不同时区和一天中的不同时间正确显示给用户。我的测试使用水豚+rspec+phantomjs。

我正在将一个块传递给 Timecop.travel(datetime) 并且该块内的测试代码正确地获取了模拟的日期时间,但看起来 PhantomJS / 模拟的浏览器没有得到模拟的时间。

有没有什么已知的方法可以让 PhantomJS 与 Timecop 一起工作?或者其他方法来模拟或操纵时间以进行测试?

这是一个简单的例子来说明我的意思。

time_spec.rb:

it "should show the Time travel date" do
  # current date is 2017-01-24
  Date.today.should == Date.parse("2017-01-24")
  Timecop.travel( Time.parse("2001-01-01 01:01") ) {
    sign_in(user)
    visit "/#{user.username}"

    Date.today.should == Date.parse("2001-01-01")
    page.should have_text("Today is 2001-01-01")
    page.should have_text("Javascript says 2001-01-01")
  }
end
Run Code Online (Sandbox Code Playgroud)

用户.html.erb:

<p>Today is <%= Time.now.iso8601 %></p>
<script>
  var now = moment().format()
  $('p').append("<p>Javascript says "+now+"</p>")
</script>
Run Code Online (Sandbox Code Playgroud)

运行测试的输出:

Failures:

  1) Dashboard should show the time travel date
     Failure/Error: page.should have_text("Javascript says …
Run Code Online (Sandbox Code Playgroud)

testing ruby-on-rails capybara phantomjs timecop

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