在视图轨道中显示model.find的结果

时间:2015-03-05 12:00:37

标签: ruby-on-rails ruby postgresql

我的控制器中有一个方法,它以逗号分隔的字符串作为输入,并显示具有该特定id的所有行。 输入:1,2,3 输出:问题ID为1,2和3的所有问题 以下是代码:

@string = params[:question][:question]
if(@string)
 @q_ids=@string.split(",")
 @questions = Question.find(@q_ids)

 format.json { render :search_by_id }
 respond_to do |format|
   format.html {redirect_to search_result_url}
 end
else
  respond_to do |format|
    format.html {redirect_to search_by_id_url}
  end
end

但输出总是:

[#,#,#]

请告诉我如何在视图中显示对象的所有字段。提前谢谢。

2 个答案:

答案 0 :(得分:0)

在控制器中,将@questions = Question.find(@q_ids)替换为

@questions = Question.where(id: @q_ids)

在视图中

<% @questions.each do |question| %>
  <%= question.field_name %>
<% end %>

其中field_name应替换为适当的属性名称

答案 1 :(得分:0)

如果您想要显示@questions的结果,为什么使用redirect_to?

尝试:

@q_ids = params[:question][:question].split(",")
@questions = Question.find(@q_ids)

 respond_to do |format|
   # format.json can replace to respond_to block
   format.json { render :search_by_id }
   format.html {render search_result_url}
 end