小编the*_*one的帖子

生成由多个模型引用的嵌套资源的编辑路径

在routes.rb中:

resources :cars do
  resources :reviews
end

resources :motorcycles do
  resources :reviews
end
Run Code Online (Sandbox Code Playgroud)

在ReviewsController中:

before_filter :find_parent

def show
  @review = Review.find(params[:id])
  respond_to do |format|
    format.html # show.html.erb
    format.xml  { render :xml => @review }
  end
end

def edit
  @review = Review.find(params[:id])
end

# ...
def find_parent
  @parent = nil
  if params[:car_id]
    @parent = Car.find(params[:car_id])
  elsif params[:motorcycle_id]
    @parent = Motorcycle.find(params[:motorcycle_id])
  end
end
Run Code Online (Sandbox Code Playgroud)

生成Review的"show"链接很简单(这可行):

= link_to "Show", [@parent, @review]
Run Code Online (Sandbox Code Playgroud)

类似地,我想引用一个用于评论的通用编辑路径,类似于(这不起作用):

= link_to "Edit", [@parent, @review], :action => 'edit'
Run Code Online (Sandbox Code Playgroud)

有谁知道这是否可能,或者如果不可能,如何实现这一目标?

resources routes nested ruby-on-rails

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

使用pyaudio中的其他任何值作为速率/格式/块会给我错误:[Errno输入溢出] -9981

操作系统:Mac OSX 10.7.5 Python:Python 2.7.3(homebrew)pyaudio:0.2.7 portaudio:19.20111121(homebrew-portaudio)

以下脚本输出以下内容,并显示我遇到的问题:

#!/usr/bin/env python
import pyaudio
from pprint import pprint

p = pyaudio.PyAudio()


# SUCCEEDS
pprint(p.is_format_supported(input_format=pyaudio.paInt8,input_channels=1,rate=44100,input_device=0)) # => True
try:
    stream = p.open(format=pyaudio.paInt8,channels=1,rate=44100,input=True,frames_per_buffer=1024)
    data = stream.read(1024)
except IOError as e:
    print 'This never happens: '+str(e)

# FAILS
pprint(p.is_format_supported(input_format=pyaudio.paInt8,input_channels=1,rate=22050,input_device=0)) # => True
try:
    stream = p.open(format=pyaudio.paInt8,channels=1,rate=22050,input=True,frames_per_buffer=1024)
    data = stream.read(1024)
except IOError as e:
    print 'This fails: '+str(e)

# FAILS
pprint(p.is_format_supported(input_format=pyaudio.paInt8,input_channels=1,rate=22050,input_device=0)) # => True
try:
    stream = p.open(format=pyaudio.paInt8,channels=1,rate=22050,input=True,frames_per_buffer=512)
    data = stream.read(1024)
except IOError as e:
    print 'This …
Run Code Online (Sandbox Code Playgroud)

python microphone portaudio pyaudio

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

从队列中“弹出”一条消息的正确 Go/RabbitMQ 方法?

我的第一个问题实际上是一个设计问题。这是我第一次编写使用队列的服务,而且我也是 Go 新手。我正在尝试确定是否应该以这样的方式编写我的工作程序,即它只需从队列中弹出一条消息,对其进行处理,然后就消失了。对于像 Kubernetes 这样的东西,这看起来相当微不足道。

或者我应该让一个长寿的工作人员不断等待新消息,但如果它死了(由于错误或意外),就会重新启动?

我问这个问题的原因是,为了实现前者,感觉有点“被破解”,因为我必须使用通用的 go AMQP 库编写以下内容streadway/amqp(阅读评论):

// Pop will extract a message from the AMQP queue
func (v *Queue) Pop() (data []byte, err error) {
    msgs, err := v.Channel.Consume(
        v.QueueName, // queue
        v.ConsmerID, // consumer
        true,        // auto-ack
        false,       // exclusive
        false,       // no-local
        false,       // no-wait
        nil,         // args
    )
    if err != nil {
        return nil, err
    }

    // We have to use for .. range because Consume returns
    // …
Run Code Online (Sandbox Code Playgroud)

amqp go rabbitmq kubernetes

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