On Tuesday, October 18, 2016 at 8:48:51 AM UTC-4, Chris Lerum wrote:
>
> Your line:
> params.require(:product).permit(:title, :template, :price, :msrp, 
> :enddate)
> needs to be:
> params.require(:product).permit(:title, :template, :price, :msrp, 
> :enddate, :category_id)
>
> On Tuesday, October 4, 2016 at 3:15:26 PM UTC-4, Joe Guerra wrote:
>>
>> Still unsure of what to do...  this is my migration to add category {id} 
>> to my products table
>>
>> class AddCategoryRefToProducts < ActiveRecord::Migration
>>   def change
>>     add_reference :products, :category, index: true, foreign_key: true
>>   end
>> end
>>
>>
>>
>>
>>
>>
>> On Friday, September 30, 2016 at 3:33:04 PM UTC-4, mode-x wrote:
>>>
>>> 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 <[email protected]> 
>>> 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 <[email protected]> 
>>>> 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" <[email protected]> wrote:
>>>>>>
>>>>>>> Need the code in the controller edit action
>>>>>>>
>>>>>>> On 30 Sep 2016 4:03 p.m., "Joe Guerra" <[email protected]> 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" <[email protected]> 
>>>>>>>>> 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 [email protected].
>>>>>>>>>> To post to this group, send email to [email protected]
>>>>>>>>>> .
>>>>>>>>>> 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 [email protected].
>>>>>>>> To post to this group, send email to [email protected].
>>>>>>>> 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 [email protected].
>>>>> To post to this group, send email to [email protected].
>>>>> 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.
>>>>>
>>>>
>>>>
>>>
Thanks, got it. 

-- 
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 [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/c0bb63f5-d227-4bc3-8126-6784b984ca2d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to