0

編集ボタンをクリックしているときに新しいウィンドウをポップアップするタスクがありましたが、これに対する解決策はありません。クラスの生徒と 3 つの属性 name、age、branch があります。scaffolding を使用してビューを作成しました。私に割り当てられたタスクは、編集ボタンをクリックしているときに、これらの属性を編集するためのポップアップ ウィンドウが表示されるはずです。どうすればよいですか? 助けてください。これをjTableのようにしたいです。これは私の index.html.erb です

<table class="tablelist">
    <caption>Listing students</caption>
  <tr>
    <th>Name</th>
    <th>Age</th>
    <th>Branch</th>
    <th></th>

    <th></th>
  </tr>
<% @students.each do |student| %>
  <tr>
    <td><%= student.name %></td>
    <td><%= student.age %></td>
    <td><%= student.branch %></td>

    <td><%=link_to (image_tag("edit.png", :alt => 'Edit'), edit_student_path(student)) %></td>
    <td><%= link_to 'Destroy', student, :method => :delete, :data => { :confirm => 'Are you sure?' } %></td>
  </tr>
<% end %>
</table>

<br />

<%= link_to 'New Student', new_student_path %>

この学生クラスの管理者は

def list
    @students = Student.all
    @jtable = {'Result' => 'OK','Records' => @students.map(&:attributes)}

    respond_to do |format|
      format.html # index.html.erb
      format.json { render :json => @jtable}
    end
  end

index.html.erb は

<html>
    <head>
        <%=stylesheet_link_tag "jtable_blue","http://code.jquery.com/ui/1.9.1/themes/base/jquery-ui.css",:media => "all" %>
        <%= javascript_include_tag "jquery-1.8.3.min","http://code.jquery.com/ui/1.9.1/jquery-ui.js","jquery.jtable.min"%>
<script type="text/javascript">
    jQuery.noConflict();
    jQuery(document).ready(function () {
        jQuery('#StudentTableContainer').jtable({
            title: 'StudentList',
            actions: {
                listAction: '/students/list',
                createAction: '/students/newstudent',
                updateAction: '/students/edit',
                deleteAction: '/students/destroy'
            },
            fields: {
                id: {
                    key: true,
                    create: false,
                    edit: false,
                    list: false
                },
                name: {
                    title: 'name',
                    width: '40%'
                },
                sex: {
                    title: 'sex',
                    width: '20%'
                },
                branch: {
                    title: 'branch',
                    width: '30%'
                }

            }
        });

       jQuery('#StudentTableContainer').jtable('load');
    });
</script>
</head>
<body>

    <div id="StudentTableContainer">
    </div>
</body>
</html>

routes.rb は

match 'students/list' => 'students#list', :as => :list
4

2 に答える 2

2

ポップアップ you を使用する代わりに、Twitter Bootstrapに含まれているようなポップアップ モーダルを使用するのはどうでしょうか。Rails はポップアップを処理しませんが、javascript で生成できます。TopUpプロトタイプ ウィンドウもあります。

于 2012-11-26T11:21:41.663 に答える
1

ポップアップを処理する Rails3 の方法はありません。JavaScript ライブラリ (jqueryui またはその他) を使用し、そのライブラリを使用してポップアップを作成する必要があります。Rails は、ライブラリ メソッドに渡すポップアップの HTML を生成する方法でのみ役立ちます。

つまり、Rails アプリにリクエストを送信するボタンが表示されます。Rails アプリは、ポップアップ HTML とともに JavaScript を生成し、実行のためにクライアントに送り返します。これを実装する正確な方法は、使用している JS ライブラリによって異なり、このトピックについて調査することができます。

于 2012-11-26T11:14:52.177 に答える