如何使用Ruby on Rails打印控制器中的数据?

o7jaxewo  于 5个月前  发布在  Ruby
关注(0)|答案(4)|浏览(52)

我从互联网上学习Ruby on Rails,并建立一个小项目。我发现了一些问题。我在谷歌搜索打印我的数据在控制器。所有都建议我使用puts,但我已经尝试在puts没有得到任何输出。这里是我的代码:

users_controller.rb

def index
  @categories = Category.includes(:galleries).where(:is_active=> 1)

  @categories.each do |catt|
    puts catt.name
  end
end

字符串
另外,我在上一个问题中得到了一些评论,他们建议我使用render,所以我尝试了以下代码:

@categories.each do |catt|
    render text:catt.inspect
  end
  return false


这里我得到错误消息使用render
在此操作中多次调用了渲染和/或重定向。请注意,您只能调用渲染或重定向,并且每个操作最多一次。还要注意,重定向和渲染都不会终止操作的执行,因此如果您想在重定向后退出操作,则需要执行类似“redirect_to(...)and return”的操作。
你能告诉我如何在我的控制器中获得字符串和数组记录吗?

6jygbczu

6jygbczu1#

您可以将这些值发送到服务器的日志文件:

@categories.each do |catt|
  Rails.logger.debug "Category Name: #{catt.name}" 
end

字符串
您可以使用tail命令打开并监视日志文件的更改:

$ tail -f log/development.log

htrmnn0y

htrmnn0y2#

def index
  @categories = Category.includes(:galleries).where(:is_active=> 1)

  @categories.each do |catt|
    catt.name
    Rails.logger.info "This is cat name: #{catt.name}"
  end
end

字符串
您可以使用logger.info查看日志

wvmv3b1j

wvmv3b1j3#

每个action/方法只能调用render一次,而puts在此上下文中不起作用。此外,render:text将响应类型设置为'text/html'。您是否想要纯文本?如果是,也许可以使用下面的?或者您可以覆盖响应类型,如果您愿意。

@result = ''
  @categories.each do |catt|
    @result += catt.inspect + '\n'
  end
  render plain: @result

字符串

f0brbegy

f0brbegy4#

你可以创建一个空的视图,用puts命令打印输出变量。

相关问题