Ruby on Rails
Friday, September 30, 2016
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 <abiaemma@gmail.com> wrote:
The problem is that you have not passed in the category id so it wont get saved. I suggest you:
- add category_id to your list of permitted product params
- introduce validations in the product model to guard against missing values
On Fri, Sep 30, 2016 at 4:43 PM, Joe Guerra <jguerra@jginfosys.com> wrote:--
class ProductsController < ApplicationControllerbefore_action :set_product, only: [:show, :edit, :update, :destroy]# GET /products# GET /products.jsondef 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.jsondef showend# GET /products/newdef new@product = Product.newend# GET /products/1/editdef editend# POST /products# POST /products.jsondef create@product = Product.new(product_params)respond_to do |format|if @product.saveformat.html { redirect_to @product, notice: 'Product was successfully created.' }format.json { render :show, status: :created, location: @product }elseformat.html { render :new }format.json { render json: @product.errors, status: :unprocessable_entity }endendend# PATCH/PUT /products/1# PATCH/PUT /products/1.jsondef updaterespond_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 }elseformat.html { render :edit }format.json { render json: @product.errors, status: :unprocessable_entity }endendend# DELETE /products/1# DELETE /products/1.jsondef destroy@product.destroyrespond_to do |format|format.html { redirect_to products_url, notice: 'Product was successfully destroyed.' }format.json { head :no_content }endendprivate# 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) endend
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:To view this discussion on the web visit https://groups.google.com/d/msOk, 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
andprodu
.cts 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%40 googlegroups.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.gid/rubyonrails-talk/6779741f- .a256-422b-8aee-ace7a38cfc91%40 googlegroups.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
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/CAHewxcFmoswBJp8dT2d6RqrLJ0n-ynerQzY00TpfkTb5-gHnsA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment