change to this also...observe the category_id attribute. I hope you have it
in your product model

<%= simple_form_for(@product) do |f| %>
  <%= f.error_notification %>
  <div class = "field">
    <%= f.label :category %><br/>
    <%= f.collection_select :category_id, Category.all, :id, :name %>
  </div>
  <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 Fri, Sep 30, 2016 at 8:23 PM, Emmanuel Abia <abiae...@gmail.com> wrote:

> 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/msgid/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/ms
>> gid/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/CAHewxcFmoswBJp8dT2d6RqrLJ0n-ynerQzY00TpfkTb5-gHnsA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to