У меня есть список пользователей в моей таблице jQgrid, и теперь я хочу создать подсеть, в которой будут перечислены все проекты для выбранного пользователя.
Конечно, у них есть отношения has_many и own_to.
Теперь мой код выглядит следующим образом
jQuery("#datatable").jqGrid({
url: "/user/details",
serializeGridData: function(data) {
var Data = jQuery.extend(data, {
_search: "true",
date_from: function() { return jQuery("#date_from").val(); },
date_to: function() { return jQuery("#date_to").val();
});
return jQuery.param(Data);
},
ajaxGridOptions: {async: true},
ajaxCellOptions: {async: true},
ajaxRowOptions: {async: true},
mtype: "POST",
datatype: "local",
overlay: "false",
jsonReader: {repeatitems: false},
loadonce: false,
pager: '#nav_grid',
rowEdit: true,
colNames:['id','Name','Surname', 'Age', 'Company'],
colModel:[
{name:'id',key:true,hidden:true,width:0,index:'id', sorttype:"int", editable: false, align:'left',search:true},
{name:'name',width:175,sortable:true, align:'left',search:true},
{name:'surname',fixed:true,width:250,sortable:true, align:'left',search:true},
{name:'age',width:0,index:'item_code', sorttype:"int", editable: false, align:'left',search:true},
{name:'company',width:300,sortable:true, align:'left',search:true},
{name:'company',width:100,sortable:true, align:'left',search:true,formatter:'currency'}
],
jQuery('[id^="gs"]').attr("placeholder", "Search...");
},
rownum:500,
rowNum:500,
rowList:[500, 1000],
shrinktofit: true,
forcefit: false,
autowidth:true,
sortname: 'projects',
sortorder: "desc",
height: "380",
ignoreCase: true,
viewrecords: true,
caption:"",
subGrid: true,
subGridRowExpanded: function(subgrid_id, row_id) {
var user_id = jQuery('#data_table').getRowData(row_id)['user_id']
var subgrid_table_id;
subgrid_table_id = subgrid_id + "_t";
jQuery("#"+subgrid_id).html("<table id='"+subgrid_table_id+"' class='scroll'></table><div id='"+ "p_"+subgrid_table_id +"' class='scroll'></div>");
jQuery("#"+subgrid_table_id).jqGrid({
url:"/user/project_details",
datatype: "json",
jsonReader: {repeatitems: false},
postData: data,
colNames: ['id','Category','Supplier', 'Item Code', 'Name', 'Price', '#','Unit', 'Total Cost (no tax)', 'Total Tax', 'Charges', 'Credits', 'Grand Total'],
colModel: [
{name:'project_id',key:true,hidden:true,width:0,index:'id', sorttype:"int", editable: false, align:'left',search:true},
{name:'project_name',width:175,sortable:true, align:'left',search:true},
{name:'email',fixed:true,width:250,sortable:true, align:'left',search:true},
{name:'user_id',width:0,index:'item_code', sorttype:"int", editable: false, align:'left',search:true},
],
height: '100%',
sortname: 'num',
sortorder: "asc",
shrinktofit: true,
forcefit: false,
autowidth:true,
rownum:500,
rowNum:500,
loadonce:true,
rowList:[500,1000],
viewrecords: true,
pager:"p_"+subgrid_table_id
});
Вопрос в том, как найти current_row (выбранную строку) и затем перечислить все проекты, принадлежащие выбранному пользователю.
В пользовательском контроллере (этоэто проекты, которые должны быть перечислены в подсетке)
def index
@projects = Project.joins(:user).where(:projects => {project_id: selected_user.id(?))
end
Я пробовал что-то подобное, но я не знаю, как назвать selected_user.id, есть ли способ для этого?
Илиесли это совсем не хорошо, как бы вы порекомендовали это сделать?