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.

Reply via email to