This is a migrated thread and some comments may be shown as answers.

Ruby on Rails - JSON and Nested Grids

2 Answers 256 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Phillip
Top achievements
Rank 1
Phillip asked on 10 Feb 2012, 11:38 PM
Hello, 

I saw this Kendo blog post on how to do nested Grids in PHP:  http://www.kendoui.com/blogs/teamblog/posts/12-01-18/get_rolling_with_kendo_ui_and_php_ndash_part_1.aspx 

I am essentially trying to do the same thing, however I have data coming from Rails and I can't seem to get this example to work with my Rails code.  If I need to provide you more code, please let me know.

The project is using nested models - Posts and Comments.  Each Post has a 'title' and 'content' field.  Each Comment also has a 'title' and 'content' field.

Posts have many Comments and each Comment has a post_id associated with it in the database.

When I render views on the server, I use this path to get comments:  
http://localhost:3000/posts/1/comments

 This would render all the comments for Post #1.  And the Post JSON would look like this:
{"content":"My first post","created_at":"2012-02-07T18:56:16Z","id":1,"title":"Hello","updated_at":"2012-02-07T18:56:16Z"}


If I wanted a specific comment, I would put
http://localhost:3000/posts/1/comments/7

The Comment JSON would come out like this:
{"content":"Interesting","created_at":"2012-02-10T22:16:45Z","id":7,"post_id":1,"title":"Great post!","updated_at":"2012-02-10T22:16:45Z"}

Since there is a post_id attribute on the Comment, I'm assuming I'd need to filter for that on the sub-grid.... but I'm not sure how to do that.

Here is what I have so far:

var PostsData = new kendo.data.DataSource({
                transport: {
                    read: "/posts.json"
                }
            });
             
             
            $("#posts-grid").kendoGrid({
                 
                dataSource: PostsData,
            
                columns: [
                {
                    field: "title",
                    title: "Title"
                },
                {
                    field: "content",
                    title: "Content",                  
                }],
                 
                detailTemplate: kendo.template($("#posts-grid-template").html()),
                detailInit: detailInit     
            });
             
             
            function detailInit(e) {
                 
                // Reference current row being initialized
                var detailRow = e.detailRow;
                 
                // Create a subgrid for the current
                // detail row, getting comments for the post
                detailRow.find(".posts-grid").kendoGrid({
                    dataSource: {
                        transport: {
                            read: "comments"
                        },
                         
                        schema: {
                            data: "content"
                        },
                         
                        serverFiltering: true,
                         
                        filter: { field: "post_id", operator: "eq", value: e.data.post_id }
                    },
                     
                    columns: [{ title: "Comments", field: "content" }]
                })
                 
            }


Here is the html code that contains the templates:

<h1>Kendo Grid Test</h1>
 
<div id="nav"></div>
 
 
<div id="container">
     
<!-- The templates below will be placed  here dynamically    -->
     
</div>
 
<!-- TEMPLATES -->
<script type="text/template" id="users-grid-template"
    <p>Users Grid Template</p
    <div id="users-grid"></div>
         
     
</script>
 
<script type="text/x-kendo-template" id="posts-grid-template"
    <div class="comments-grid"></div>  
</script>
 
 
 
<script type="text/template" id="nav-template">
  <div>
    <ul id="nav_container">
        <li><a href="#users">Users</a></li>
        <li><a href="#posts">Posts</a></li>
    </ul>
  </div>
</script>


Any help is greatly appreciated!

2 Answers, 1 is accepted

Sort by
0
Phillip
Top achievements
Rank 1
answered on 11 Feb 2012, 11:50 PM
Nevermind - I've managed to fix all the issues and now the Kendo grid and nestings are working just fine with Rails.

0
George
Top achievements
Rank 1
answered on 15 Feb 2012, 02:00 PM
How do you fix it?
Tags
Grid
Asked by
Phillip
Top achievements
Rank 1
Answers by
Phillip
Top achievements
Rank 1
George
Top achievements
Rank 1
Share this question
or