Rails 3自定义方法位置

时间:2012-01-12 14:35:31

标签: ruby-on-rails ruby-on-rails-3

我目前正在尝试将一些解析方法添加到Rails 3应用程序中的控制器方法。

我有一个控制器动作如下:

def control
  @device = Device.find(params[:id])
  <do things>
  parse_return(@returned_data)
end

我向控制器添加了一个自定义方法,如下所示(此方法没有任何路由,只能被控制器操作访问):

def parse_return
  <parse data>
end

但这似乎不允许使用parse_return方法。 Rails应用程序中的其他地方是否可以提供可重用的方法?

谢谢!

2 个答案:

答案 0 :(得分:0)

乍一看似乎你没有做出回应。 control操作没有关联的视图是真的吗?

在这种情况下,您必须在操作中手动调用render。例如,要呈现JSON响应,您可以执行以下操作:

def control
  # ...

  render :json => parse_return(@returned_data),
         :content_type => 'application/json',
         :layout => false
end

答案 1 :(得分:0)

您应该包含错误。

如果你试试这会怎么样?

def parse_return(returned_data)
  <parse data>
end

也许该方法不期望将参数与其一起传递。