The problem is that you have not passed in the category id so it wont get saved. I suggest you:
1. add category_id to your list of permitted product params 2. introduce validations in the product model to guard against missing values On Fri, Sep 30, 2016 at 4:43 PM, Joe Guerra <jgue...@jginfosys.com> wrote: > > 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 >>>>>> <https://groups.google.com/d/msgid/rubyonrails-talk/8c62b187-a01f-4da3-8051-8772215ebb3d%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> 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/ms >>>> gid/rubyonrails-talk/6779741f-a256-422b-8aee-ace7a38cfc91% >>>> 40googlegroups.com >>>> <https://groups.google.com/d/msgid/rubyonrails-talk/6779741f-a256-422b-8aee-ace7a38cfc91%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> 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+unsubscr...@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 > <https://groups.google.com/d/msgid/rubyonrails-talk/b4d9af8e-7e31-4d0a-96ef-1ae29d70e34b%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > 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+unsubscr...@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/CAHewxcE2vHoXjNUr%3DZsrU_QyytV-KiRvWUYog88cDgxEr5Y%3DHQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.