Я знаю, как получить доступ к атрибутам внешнего ключа в представлении индекса скаффолда.Я могу просто ссылаться на атрибуты, используя точечные обозначения, такие как property.que.name .Для следующих моделей:
class Priority < ActiveRecord::Base
belongs_to :que
...
end
class Que < ActiveRecord::Base
has_many :priorities
...
end
В индексном представлении я могу сделать что-то подобное, чтобы получить значение имени:
<td><%=h priority.que ? priority.que.name : "" %></td>
Как мне это сделать в jqgrid?
Я пробовал это, но jqgrid возвращается пустым:
Приоритет Контроллера:
@priorities = Priority.find(:all, :order => "position", :conditions => "multitenant_team_id = " + current_user.team.id.to_s ) do
if params[:_search] == "true"
id =~ "%#{params[:id]}%" if params[:id].present?
issue_id =~ "%#{params[:issue_id]}%" if params[:issue_id].present?
que =~ "%#{params[:que]}%" if params[:que].present?
customer =~ "%#{params[:customer]}%" if params[:customer].present?
title =~ "%#{params[:title]}%" if params[:title].present?
reporting_source =~ "%#{params[:reporting_source]}%" if params[:reporting_source].present?
priority =~ "%#{params[:priority]}%" if params[:priority].present?
product =~ "%#{params[:product]}%" if params[:product].present?
current_owner =~ "%#{params[:current_owner]}%" if params[:current_owner].present?
end
paginate :page => params[:page], :per_page => params[:rows]
order_by "#{params[:sidx]} #{params[:sord]}"
end
if request.xhr?
end
respond_to do |format|
format.html # index.html.erb
format.json { render :json => @priorities.to_jqgrid_json(
[:id, :issue_id, :que.name, :customer, :title, :reporting_source,
:priority, :product, :current_owner],
params[:page], params[:rows], @priorities.total_entries)}
format.xml { render :xml => @priorities }
end
end
Индекс:
<%= jqgrid("Priorities", "priorities", "/priorities",
[
{:field => "id", :label => "ID", :width => 35, :resizable => false},
{:field => "issue_id", :label => "Issue Id"},
{:field => "que", :label => "Queue"},
{:field => "customer", :label => "Customer"},
{:field => "title", :label => "Title"},
{:field => "reporting_source", :label => "Reporting Source"},
{:field => "priority", :label => "Priority"},
{:field => "product", :label => "Product"},
{:field => "current_owner", :label => "Current Owner"}
],
{ :rows_per_page => 12, :height => 450 }
)%>
Если я указываю que вместо que.name, я получаю данные обратно в сетку, но в поле Queue отображается символ "#", поэтому я подозреваю, что вызову .to_jqgrid_json не нравится мой синтаксис.
Кто-нибудь пробовал это раньше?Я надеюсь на это.