Ruby on Rails Friday, September 30, 2016


class ProductsController < ApplicationController
  before_action :set_product, only: [:show, :edit, :update, :destroy]
  
  # GET /products
  # GET /products.json
  def index
   
   # @search = Product.search(params[:search])
    
    #ransack
    @search = Product.search(params[:q])
    @products = @search.result.paginate(page: params[:page] , per_page: 10)
      
    # @products = Product.all
    
    # @products = @search.all
    
    #paginate
    #@product = Product.paginate(:page => params[:page], per_page: 10)
    #Product.paginate(:page => params[:page], per_page: 10)
    
  end

  # GET /products/1
  # GET /products/1.json
  def show
  end

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

  # GET /products/1/edit
  def edit
  end

  # POST /products
  # POST /products.json
  def create
    @product = Product.new(product_params)

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

  # PATCH/PUT /products/1
  # PATCH/PUT /products/1.json
  def update
    respond_to do |format|
      if @product.update(product_params)
        format.html { redirect_to @product, notice: 'Product was successfully updated.' }
        format.json { render :show, status: :ok, location: @product }
      else
        format.html { render :edit }
        format.json { render json: @product.errors, status: :unprocessable_entity }
      end
    end
  end

  # DELETE /products/1
  # DELETE /products/1.json
  def destroy
    @product.destroy
    respond_to do |format|
      format.html { redirect_to products_url, notice: 'Product was successfully destroyed.' }
      format.json { head :no_content }
    end
  end

  private
    # Use callbacks to share common setup or constraints between actions.
    def set_product
      @product = Product.find(params[:id])
    end

    # Never trust parameters from the scary internet, only allow the white list through.
    def product_params
      # params.fetch(:product, {})
      
        params.require(:product).permit(:title, :template, :price, :msrp, :enddate)
        
    end
    
    
    
    
end


Ok, that's my product controller...


On Friday, September 30, 2016 at 11:38:34 AM UTC-4, mode-x wrote:

Pardon me its the update action code


On 30 Sep 2016 4:31 p.m., "Emmanuel Abia" <abia...@gmail.com> wrote:

Need the code in the controller edit action


On 30 Sep 2016 4:03 p.m., "Joe Guerra" <jgu...@jginfosys.com> wrote:
Ok, here is my edit products page...

<% if user_signed_in? %>  <!-- fix this change to admin user -->

<h1>Editing Product</h1>

<%= render 'form' %>

<%= link_to 'Show', @product %> |
<%= link_to 'Back', products_path %>

<% else %>


    <div class="alert alert-warning" role="alert">You must be signed in as administrator to edit the products.</div>
  
<% end %> 


here is my _form

<%= simple_form_for(@product) do |f| %>
  <%= f.error_notification %>


 <!-- fix this -->
 <div class = "field">
    
    <%= f.label :category %><br/>
    
    <%= f.collection_select :category, Category.all, :id, :name %>
  </div>
  <!-- fix this, it should save the category to the model -->
  
  <div class="form-inputs">
    
    <%= f.input :title %>
    <%= f.input :template %>
    <%= f.input :price %>
    <%= f.input :msrp %>
    <%= f.input :enddate %>
    <%= f.input :draft %>
  
 
  </div>

  <div class="form-actions">
    <%= f.button :submit %>
  </div>
<% end %>







On Friday, September 30, 2016 at 10:58:34 AM UTC-4, mode-x wrote:

You need to show the code for your edit


On 30 Sep 2016 3:51 p.m., "Joe Guerra" <jgu...@jginfosys.com> wrote:

I've got two tables in my Postgres database: categories and products.

I have a one to many relationship defined, one category can have many products.


I then created a reference and migrated the tables.

AddCategoryRefToProducts category:references


I have this in my models.

#product.rb  belongs_to :category    #category.rb  has_many :products


I've fixed the _form to include the category id.   But when I edit or update the form, the category id is not written to the product table.


I think I'm missing a step somewhere, not sure where.


Any suggestions?


Thanks,

Joe

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-ta...@googlegroups.com.
To post to this group, send email to rubyonra...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/8c62b187-a01f-4da3-8051-8772215ebb3d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-ta...@googlegroups.com.
To post to this group, send email to rubyonra...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/6779741f-a256-422b-8aee-ace7a38cfc91%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/b4d9af8e-7e31-4d0a-96ef-1ae29d70e34b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment