0

私はRailsのエントリーレベルです。scaffold でデータベース (名前は「shop」) を作成しました。また、テーブルの概要を表示するページと、レコードの特定の情報を表示する別のページにジャンプするページを作成しました。ここで、表の 1 行の [表示] リンクをクリックすると、表の概要と同じページにレコードの固有情報が表示されるページを作成してみます。

しかし、私の予想にもかかわらず、私がすでに行ったように、他のページにジャンプします。私はこれについて何時間も使ったので、誰かの助けが欲しい.

ありがとうございました。

\app\controllers\shops_controller.rb

        class ShopsController < ApplicationController

        # GET /shops
        # GET /shops.json
        def index
            @shops = Shop.all

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

    # GET /shops/1
    # GET /shops/1.json
    def show
        @shop = Shop.find(params[:id])

        respond_to do |format|
          format.html { render layout: (request.headers["X-Requested-With"] != 'XMLHttpRequest') }
          format.json { render json: @shop }
        end
    end

    # GET /shops/new
    # GET /shops/new.json
    def new
        @shop = Shop.new

        respond_to do |format|
         format.html # new.html.erb
         format.json { render json: @shop }
        end
    end

    # GET /shops/1/edit
    def edit
        @shop = Shop.find(params[:id])
    end

    # POST /shops
    # POST /shops.json
    def create
        @shop = Shop.new(params[:shop])

        respond_to do |format|
         if @shop.save
            format.html { redirect_to @shop, notice: 'Shop was successfully created.' }
            format.json { render json: @shop, status: :created, location: @shop }
         else
            format.html { render action: "new" }
            format.json { render json: @shop.errors, status: :unprocessable_entity }
         end
        end
    end

    # PUT /shops/1
    # PUT /shops/1.json
    def update
        @shop = Shop.find(params[:id])

        respond_to do |format|
          if @shop.update_attributes(params[:shop])
            format.html { redirect_to @shop, notice: 'Shop was successfully updated.' }
            format.json { head :no_content }
          else
            format.html { render action: "edit" }
            format.json { render json: @shop.errors, status: :unprocessable_entity }
          end
        end
    end

    # DELETE /shops/1
    # DELETE /shops/1.json
    def destroy
        @shop = Shop.find(params[:id])
        @shop.destroy

        respond_to do |format|
         format.html { redirect_to shops_url }
         format.json { head :no_content }
        end
    end
end

\app\views\shops\index.html.erb

    <h2>Shops</h2>

    <table>
    <tr>
        <th>Name</th>
        <th>Link_ID</th>
        <th>Offer</th>
        <th></th>
        <th></th>
        <th></th>
    </tr>

    <% @shops.each do |shop| %>
    <tr>
        <td><%= shop.name %></td>
        <td><%= shop.link_id %></td>
        <td><%= shop.offer %></td>
        <td><%= link_to 'Show', shop, :remote => true, "data-type" => "html", :class => 'show' %></td>
        <td><%= link_to 'Edit', edit_shop_path(shop) %></td>
        <td><%= link_to 'Destroy', shop, method: :delete, data: { confirm: 'Are you sure?' } %></td>
    </tr>
    <% end %>
    </table>

    <br />

    <div id="show_area"></div>
        <%= javascript_tag do %>
            $('a.show').on('ajax:success', function (data, status, xhr) {
            $('#show_area').html(status);})
        <% end %>

\app\views\shops\show.js.erb

    $('#show_area').html("<%= raw(j(render :partial => 'show_body')) %>")
4

1 に答える 1