Forum: Ruby on Rails Dislpaying validation errors from one one model to view of another.

3d0f832ab83163c0b0923260a86b6932?d=identicon&s=25 Sumit Srivastava (Guest)
on 2012-12-18 05:31
(Received via mailing list)
Hi,

I have a model,

class UserComment
belongs_to :user
validates :player_id, :presence => true
validates :comment, :uniqueness => { :scope => :player_id}

partial "comments" from User.
= simple_form_for @user, :html => {:class => 'comment-form'}, :remote =>
true do |f|
  %fieldset
    = f.fields_for :user_comments do |uac|
      = uac.input :comment, :as => :text, :input_html => {:rows => 5,
:width => 5}
      .comment-action
        = uac.button :submit, :value => 'Comment', :class => 'btn'


When I click on submit button and if the validation receives any error
it
does not display it on the view. I am not sure where the problem is.
F018bebae263cd47fd04be4553fb9ed9?d=identicon&s=25 AdofEssex (Guest)
on 2012-12-18 10:25
(Received via mailing list)
It looks like you're not outputting your errors on your view.

If you go to your terminal/command line and try the following:

type 'rails c' to enter the rails console. Here we go do a quick bit of
testing to see if the errors are being captured.
type 'user = User.new', this'll output a new User object.
type 'user.errors' If it returns Nil then you have a different problem
otherwise it's a case of just displaying your errors.

In your view you could do something like...

<% if @user.errors %>
  <div class="errors">
    <p>There was an error, please see below.</p>
    <ul>
      <% @user.errors.full_messages.each do | msg | %>
        <li><%= msg %></li>
      <% end %>
    </ul>
  </div>
<% end %>

I hope that helps.
3d0f832ab83163c0b0923260a86b6932?d=identicon&s=25 sumit srivastava (Guest)
on 2012-12-18 10:30
(Received via mailing list)
On 18 December 2012 14:54, AdofEssex <adam.johnston3679@gmail.com>
wrote:

> In your view you could do something like...
> <% end %>
>
> I hope that helps.
>
>
>
I was sending the errors to the view from the controller. I found out
that
since the errors where not from the base model (User) so it wasn't
displaying them. Once I added them to the base using errors.add(:base,
"Error"), it started displaying the errors.
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.