On Mon, Dec 10, 2012 at 3:42 PM, rubyrookie <asajn...@gmail.com> wrote:
> Thank you very much. I will read up on the difference. Sorry should have > bolded my answers. No worries. If you're looking for the difference, @payment (as you already know) uses the same record as the one you have in your controllers. If you use @merchant.payments.build, you're creating a new payment record which does not contain the values submitted by the user :) > > > On Sunday, December 9, 2012 11:33:56 PM UTC-8, jim wrote: > >> >> >> >> On Mon, Dec 10, 2012 at 3:16 PM, rubyrookie <asaj...@gmail.com> wrote: >> >>> >>> >>> On Sunday, December 9, 2012 11:08:57 PM UTC-8, jim wrote: >>> >>>> >>>> >>>> >>>> On Mon, Dec 10, 2012 at 2:26 PM, rubyrookie <asaj...@gmail.com> wrote: >>>> >>>>> No error . Validation error is populated but form does not retain >>>>> values. Payment object has the values though. >>>>> >>>> >>>> This is still confusing. What exactly do you want to do? >>>> >>>> - Show the validation errors on the form page? -> Yes, it is being >>>> displayed >>>> - Fix the payment process because you don't know what validations >>>> are failing? No, I know the validations are failing >>>> - retain the values passed by the user when validations fail? Yes. >>>> The form is not displayed the retained values. I want this to be fixed. >>>> >>>> >> It would've helped if you somehow bolded your answers. anyway, you should >> be able to do that by >> changing this line >> >> <%= form_for([@merchant, @merchant.payments.build]) do |f| %> >> >> to >> >> <%= form_for([@merchant, @payment]) do |f| %> >> >> Good luck! >> >> >>> >>>> >>>>> >>>>> On Sunday, December 9, 2012 9:53:37 PM UTC-8, rubyrookie wrote: >>>>> >>>>>> I have a relationship where a merchant can have multiple payments. I >>>>>> am posting payments to a merchant and there is a validation error. >>>>>> Payment >>>>>> object does have the values retained. Can some one help me fix the issue? >>>>>> >>>>>> View Code-> >>>>>> >>>>>> <%= @merchant.name %> >>>>>> >>>>>> <%= form_for([@merchant, @merchant.payments.build]) do |f| %> >>>>>> >>>>>> <% if @payment.errors.any? %> >>>>>> <div id="error_explanation"> >>>>>> <h2><%= pluralize(@payment.errors.**coun****t, "error") %> >>>>>> prohibited this payment from being saved:</h2> >>>>>> >>>>>> <ul> >>>>>> <% @payment.errors.full_messages.******each do |msg| %> >>>>>> <li> >>>>>> <%= msg %> >>>>>> </li> >>>>>> <% end %> >>>>>> </ul> >>>>>> </div> >>>>>> <% end %> >>>>>> >>>>>> test >>>>>> // Prints the values correctly >>>>>> <%= @payment.credit_card_number %> >>>>>> <%= @payment.zip %> >>>>>> <%= @payment.country %> >>>>>> >>>>>> <div class="field"> >>>>>> <%= f.label :credit_card_number %> >>>>>> <br /> >>>>>> <%= f.text_field :credit_card_number , :autocomplete => "off" %> >>>>>> </div> >>>>>> <div class="field"> >>>>>> <%= f.label :address_line_2 %> >>>>>> <br /> >>>>>> <%= f.text_field :address_line_2 %> >>>>>> </div> >>>>>> <div class="field"> >>>>>> <%= f.label :city %> >>>>>> <br /> >>>>>> <%= f.text_field :city %> >>>>>> </div> >>>>>> <div class="field"> >>>>>> <%= f.label :zip %> >>>>>> <br /> >>>>>> <%= f.text_field :zip %> >>>>>> </div> >>>>>> <div class="field"> >>>>>> <%= f.label :country %> >>>>>> <br /> >>>>>> <%= f.text_field :country %> >>>>>> </div> >>>>>> >>>>>> <div class="actions"> >>>>>> <%= f.submit %> >>>>>> </div> >>>>>> <% end %> >>>>>> >>>>>> Controller code-> >>>>>> >>>>>> class PaymentsController < ApplicationController >>>>>> # GET /merchants/1 >>>>>> # GET /merchants/1.json >>>>>> def new >>>>>> @payment = Payment.new >>>>>> @merchant = Merchant.find(params[:**merchant****_id]) >>>>>> respond_to do |format| >>>>>> format.html # show.html.erb >>>>>> end >>>>>> end >>>>>> >>>>>> def index >>>>>> >>>>>> if params[:merchant_id] >>>>>> @payments = Merchant.find(params[:**merchan****t_id]).payments >>>>>> else >>>>>> @payments = Payment.all >>>>>> end >>>>>> >>>>>> respond_to do |format| >>>>>> format.html # index.html.erb >>>>>> format.json { render json: @merchants } >>>>>> end >>>>>> end >>>>>> >>>>>> def create >>>>>> @merchant = Merchant.find(params[:**merchant****_id]) >>>>>> @payment = @merchant.payments.create(**para****ms[:payment]) >>>>>> >>>>>> respond_to do |format| >>>>>> if @merchant.save >>>>>> format.html {redirect_to merchants_path} >>>>>> else >>>>>> format.html { render action: "new" } >>>>>> >>>>>> end >>>>>> end >>>>>> >>>>>> end >>>>>> >>>>>> end >>>>>> >>>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Ruby on Rails: Talk" group. >>>>> To post to this group, send email to rubyonra...@googlegroups.**com. >>>>> To unsubscribe from this group, send email to rubyonrails-ta...@** >>>>> googlegroups**.com. >>>>> To view this discussion on the web visit https://groups.google.com/d/* >>>>> *ms**g/rubyonrails-talk/-/**jSZvC8ID4**ycJ<https://groups.google.com/d/msg/rubyonrails-talk/-/jSZvC8ID4ycJ> >>>>> . >>>>> >>>>> For more options, visit >>>>> https://groups.google.com/**grou**ps/opt_out<https://groups.google.com/groups/opt_out> >>>>> . >>>>> >>>>> >>>>> >>>> >>>> >>>> >>>> -- >>>> ------------------------------****------------------------------****- >>>> visit my blog at http://jimlabs.heroku.com >>>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Ruby on Rails: Talk" group. >>> To post to this group, send email to rubyonra...@googlegroups.**com. >>> To unsubscribe from this group, send email to rubyonrails-ta...@** >>> googlegroups.com. >>> To view this discussion on the web visit https://groups.google.com/d/** >>> msg/rubyonrails-talk/-/**DbPFCiH_y0UJ<https://groups.google.com/d/msg/rubyonrails-talk/-/DbPFCiH_y0UJ> >>> . >>> >>> For more options, visit >>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out> >>> . >>> >>> >>> >> >> >> >> -- >> ------------------------------**------------------------------**- >> visit my blog at http://jimlabs.heroku.com >> > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk@googlegroups.com. > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msg/rubyonrails-talk/-/I6TAroHPoZkJ. > > For more options, visit https://groups.google.com/groups/opt_out. > > > -- ------------------------------------------------------------- visit my blog at http://jimlabs.heroku.com -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.