小编ove*_*one的帖子

在救援中输出错误(Ruby/Rails)

只是一个简单的问题.我在文档中找不到它.

如果我使用标准begin ... rescue,如何将所有错误或堆栈跟踪打印到救援中?

例如:

begin 
    do x
rescue
    puts errors
end
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

ruby ruby-on-rails exception

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

找不到控制器的操作

通过我的代码,我有一个与原始问题不同的问题,而不是写一个新问题。我将把旧部分留在本文底部,并在此处发布新问题。我这样做是因为它们密切相关。

新的:

我收到一条错误消息说

Unknown action

The action 'response' could not be found for CrawlerController
Run Code Online (Sandbox Code Playgroud)

我会保持简单,但模型、控制器和路由的代码在上一个问题的下方。

一个基本的失败是响应是 CrawlerController 中的一个定义,就像 add_Request 一样。路由匹配如下:

  match  "/requests/new" => "crawler#add_Request"
  match 'requests/:id' => 'crawler#response'   
Run Code Online (Sandbox Code Playgroud)

这是根据用户请求的控制器代码:

class CrawlerController < ApplicationController
def add_Request
@request = Request.new(params[:request])

respond_to do |format|
  if @request.save
    format.html { redirect_to(@request, :notice => 'Request was successfully created.') }
    format.xml  { render :xml => @request, :status => :created, :location => @request }

  else
    format.html { render :action => "new" }
    format.xml  { render :xml => @request.errors, …
Run Code Online (Sandbox Code Playgroud)

controller routes model initialization ruby-on-rails

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

Ruby数组相当于active record.where(标准)

这可能是一个非常长的延伸,但如果它存在,将使生活更容易.

无论如何都是这种情况.我有一个哈希数组,其中一个键值是另一个哈希........是的,我知道.

这是一个更好的解释:

@myArrayOfStuff[0]
@myArrayOfStuff[0]["single-key"]
@myArrayOfStuff[0]["single-key"]["object-identifier"]
Run Code Online (Sandbox Code Playgroud)

第一个返回哈希.第二个将返回一个对象(在我的情况下称为页面但示例使用不同的名称)第三个返回我引用的任何变量作为object-identifier.

很简单.

我想做的是选择另一个数组,其中object-identifier值不是nil或大于x.类似于activerecord.where方法的东西.

@x = @myArrayOfStuff.where(["single-key"]["object-identifier"]) > 3orwhatever
Run Code Online (Sandbox Code Playgroud)

显然这不起作用,因为语法是残酷的.但还有另一种方法吗?另一种尝试的路径可能是通过此变量对数组进行排序.就像是

@x = @myArrayOfStuff.sort {|x,y| y <=> x } 
Run Code Online (Sandbox Code Playgroud)

但是我真的不明白什么是ruby的排序方法.有人可以帮忙吗?

ruby arrays sorting activerecord ruby-on-rails

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

rails 3的map.connect语法

几天前我开始学习rails并且我正在读第一个轨道(不要判断,我们都必须从某个地方开始).它似乎使用rails 2.3而我使用的是3.0 ....

我的问题是语法.

路由曾经是完成的

#map.connect 'ads/:id', :controller=>'ads', :action=>'show'
Run Code Online (Sandbox Code Playgroud)

我对它的新尝试是这样的

match "ads/id" => "ads" :action "show"
Run Code Online (Sandbox Code Playgroud)

要么

match "ads/id" => "ads" "show"
Run Code Online (Sandbox Code Playgroud)

这两个都给我错误.对于第一个,:动作给了我意想不到的肯定并指向'a'.

没有它我会失去行动.

任何人都可以用正确的语法帮助我吗?

syntax model-view-controller ruby-on-rails map

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

使用多个JSON渲染进行响应.(红宝石/ Rails)的

这是一个相对简单的,我很确定它只是语法.

我试图将多个对象渲染为json作为控制器中的响应.所以像这样:

  def info
    @allWebsites = Website.all
    @allPages = Page.all
    @allElementTypes = ElementType.all
    @allElementData = ElementData.all


    respond_to do |format|
      format.json{render :json => @allWebsites}
      format.json{render :json =>@allPages}  
      format.json{render :json =>@allElementTypes}  
      format.json{render :json =>@allElementData}
      end
    end
  end 
Run Code Online (Sandbox Code Playgroud)

问题是我只回到了一个json,它始终是最重要的一个.有没有办法以这种方式渲染多个对象?

或者我应该创建一个由其他objects.to_json组成的新对象?

ruby model-view-controller json controller ruby-on-rails

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

在ruby中反转hash.sort_by

很简单,但我在上面画了一个空白.

 @sortedHash = @otherHash.sort_by { |k,v| v }
Run Code Online (Sandbox Code Playgroud)

这将根据键值以升序存储has.换句话说,哈希中的第一个值是最低的.我如何反转(降序)它以使最高值位于顶部?

 @sortedInternalLinksHash = @countHash.sort_by { |k,v| -v }
 @sortedInternalLinksHash = @countHash.sort_by { |k,v| !v }
Run Code Online (Sandbox Code Playgroud)

ruby sorting hash ruby-on-rails

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

活动记录在自身内部哈希

所以这有点愚蠢,而且缺乏编程知识,而不是任何ruby或rails特定的东西.

如果我想把一个普通的类变成哈希,那就不那么糟了.我已经有一个:

class CustomRequest
  require 'json'
  require 'net/http'
  attr_accessor :url, :depth, :status

  def initialize(url,depth)
    @url = url
    @depth = depth
  end

  def make_me_hash_and_send

    @myReq = {:url => @url, :depth =>@depth}
    myJsonReq = @myReq
    puts myJsonReq

    res = Net::HTTP.post_form(URI.parse('http://127.0.0.1:3008/user_requests/add.json'),
    myJsonReq)

  end
end
Run Code Online (Sandbox Code Playgroud)

只需从构造函数中传递的内部变量生成哈希.我想对活动记录做同样的事情,但它的抽象性并不容易.

可以说我有这门课

def  turn_my_insides_to_hash
#How do I take the actual record variables 
# nd generate a hash from them.
#Is it something like

@myHash = {:myString = self.myString
  :myInt => self.myInt }

end
Run Code Online (Sandbox Code Playgroud)

我可能会以错误的方式看待这个问题.我知道在课堂外我可以简单地说

@x = Result.find(passed_id).to_hash
Run Code Online (Sandbox Code Playgroud)

然后做我想做的事.但我宁愿打电话

@x …
Run Code Online (Sandbox Code Playgroud)

ruby hash activerecord ruby-on-rails http

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

判断def是否属于控制器或模型(Ruby)

所以这是一个相当无聊的问题.我仍在编写网络蜘蛛并且有很多问题,但我要问的第一个问题是你如何确定方法是属于控制器还是模型.

我不想把我的应用程序带到这里,因为有许多特定的"这个代码属于控制器或模型"的问题,而我希望这个问题只是作为一般指导.

ruby controller model ruby-on-rails function

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