Частичный запрос к БД возвращает полный столбец, нужны данные строка за строкой - PullRequest
0 голосов
/ 30 декабря 2011

Просмотр

<%= link_to "Link", {:action => "AjaxView",:col => "colname"}, :update => "Ajaxcall", :remote => true %>

Контроллер

def AjaxView
  @vars= Var.find(:all,:conditions => { :varName=> "one" },:select=>(params[:col]))
 respond_to do |format|
   format.js { render :layout=>false }
end
end

AjaxView.js.erb

$("#3").text("<%= escape_javascript(render(:partial => "var", 
                                           :collection => @vars)) %>");

_var.html.erb

<%= var.col1 %>

Теперь он возвращает все значения из столбца, нужны ли они по одному?

Текущий вывод: «amit1 amit2 amit3 amit4» в виде одной строки. Я хочу получить эти значения одно за другим, чтобы я мог отобразить ихс Div ID и опубликовать их в сетке

Желаемый результат: "amit1"

Ответы [ 2 ]

2 голосов
/ 30 декабря 2011

Когда вы вызываете render(:partial => "var", :collection => @vars) таким образом, вы фактически визуализируете это частичное для каждой переменной, одну за другой.Таким образом, чтобы использовать эти данные один за другим, я думаю, вам нужен один из них:

1) использовать всю HTML-часть, которую вы хотите добавить в частичную: _var.html.erb

<td id='<%= var.col1 %>'>    # or whatever attributes you want
   ..
</td>

2) итерируйте переменные непосредственно внутри партиала: AjaxView.js.erb

$("#3").text("<%= escape_javascript(render(:partial => "var")) %>");

_var.html.erb

<% @vars.each do |var| %>
  # do whatever you want
<% end %>
0 голосов
/ 04 февраля 2012

Большое спасибо Alony

Правильный ответ, предоставленный ею:

  <% @vars[2].col1 %>

также в AjaxView.js.erb write,

  $("#3").text("<%= escape_javascript(render(:partial => "var")) %>");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...