开发者

Admin Products Routing

开发者 https://www.devze.com 2023-04-07 07:40 出处:网络
Hi hoping to get some answers here. I have thought this over and over, it is killing me. Want to get answers now, everything i have been finding is more complex then my litle system at the moment. Que

Hi hoping to get some answers here. I have thought this over and over, it is killing me. Want to get answers now, everything i have been finding is more complex then my litle system at the moment. Question is below information.

First my routes file:

get 'admin' => 'admin#index'
  namespace "admin" do
  resources :products
end

My Admin Products Controller is as follows:

class Admin::ProductsController < ApplicationController
  # GET /products
  # GET /products.json
  def index
    @products = Product.all

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

# GET /products/1
# GET /products/1.json
 def show
   @product = Product.find(params[:id])

   respond_to do |format|
     format.html # show.html.erb
     format.json { render json: @product }
   end
 end

 # GET /products/new
 # GET /products/new.json
  def new
    @product = Product.new

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

 # GET /products/1/edit
 def edit
    @product = Product.find(params[:id])
 end

  # POST /products
  # POST /products.json
  def create
    @product = Product.new(params[:product])

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

   # PUT /products/1
   # PUT /products/1.json
   def update
     @product =开发者_JAVA技巧 Product.find(params[:id])

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

    # DELETE /products/1
    # DELETE /products/1.json
     def destroy
      @product = Product.find(params[:id])
      @product.destroy

     respond_to do |format|
        format.html { redirect_to products_url }
        format.json { head :ok }
     end
    end
   end

My Admin Products View files are standard, here is the _form, new, index files:

    New:


    <%= render 'form' %>

       <%= link_to 'Back', admin_products_path %>

     _form:
      <%= form_for [:admin, @product] do |f| %>
      <% if @product.errors.any? %>
        <div id="error_explanation">
          <h2><%= pluralize(@product.errors.count, "error") %> prohibited this product     from being saved:</h2>

          <ul>
            <% @product.errors.full_messages.each do |msg| %>
            <li><%= msg %></li>
           <% end %>
          </ul>
          </div>
          <% end %>

         <div class="field">
          <%= f.label :title %><br />
          <%= f.text_field :title %>
         </div>
         <div class="field">
            <%= f.label :description %><br />
            <%= f.text_area :description, rows: 6 %>
          </div>
           <div class="field">
            <%= f.label :image_url %><br />
            <%= f.text_field :image_url %>
           </div>
            <div class="field">
              <%= f.label :price %><br />
              <%= f.text_field :price %>
            </div>
             <div class="actions">
             <%= f.submit %>
           </div>
           <% end %>

     Index:
     <h1>Admin Listing products</h1>
      <table>
    <% @products.each do |product| %>
    <tr class="<%= cycle('list_line_odd', 'list_line_even') %>">

    <td>
        <%= image_tag(product.image_url, class: 'list_image') %>
    </td>

    <td class="list_description">
    <dl>
        <dt><%= product.title %></dt>
        <dd><%= truncate(strip_tags(product.description),
                length: 80) %></dd>
    </dl>
    </td>

    <td class="list_actions">
        <%= link_to 'Edit', edit_admin_product_path(product) %><br/>
        <%= link_to 'Destroy', admin_product_path(product),
            confirm: 'Are you sure?',
            method: :delete %>
    </td>
    </tr>
<% end %>
</table>
<br />
<%= link_to 'New product', new_admin_product_path %>

Ok I hope that is all the information that is needed to help me.

This is the question: if i go to localhost:3000/admin/products/new I get to the form to create a new product. However if i complete the form it takes me to the following localhost:3000/product/:id. I want it to redirect_to admin/products.

I keep telling myself that it has to be the redirect_to in the "create" procedure on the admin products controller, but tried everything and it is not working..... Please help it is kill me lol


JUst redirect to your index action instead of showing the product. This also applies to your update action if at all you also want the user to be redirected to the index page if they update a product. Just change redirect_to @product to redirect_to :action => 'index'.


That did not work, however here is a step by step guide. http://icebergist.com/posts/restful-admin-namespaced-controller-using-scaffolding

0

精彩评论

暂无评论...
验证码 换一张
取 消