[Rails] Re: Access a “session” variable in a nested model

Angelo Cordova
Thu, 17 Nov 2011 19:26:15 -0000

the validation is for quantity of products, the idea is, if the user
try to enter a quantity greater than the available quantity of
products, then the validation error must show up.

The problem is, products are in differents storages, and storages
belongs to a branch (a company or enterprise has a main office and has
many branches). so, I have to start my validation finding the storages
that belongs to a certain branch, when I have the storages I have to
find the product and get the total quantity of that product.

The thing is that, to get the branch id, I need to access to
"session[:user].branch_id", but I can''t do that in the model.

Can you give me, please, an example of the last option

"If all else fails you could add a non-database attribute to invoice
details and set that prior to saving, then pick it up in the
validation."

I don''t know how to add a non-database attribute in a _partial for
nested attributes, neither how to set it prior to saving

Could you help me, please



On 17 nov, 13:59, Colin Law
<clan...-gM/Ye1E23mwN+BqQ9rBEUg@public.gmane.org>
wrote:
> On 17 November 2011 16:46, Angelo Cordova
<acord...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> > Hello people.
>
> > I have a big problem here. In my rails 3.0.9 app I have a model
> > "invoice" that model "accepts nested attributes"
for "invoice
> > details". So, I don''t have a "controller" nor
"views" for "invoice
> > details", just model, because I have a "partial" in
"invoices views"
> > for the "nested attributes".
>
> > The thing is that I need to run a custom validation when every
> > "invoice details" is created, and I need a variable stored
in
> > "session". But Models can not access "session"
variables.
>
> > So I want to know, how can I access that variable and then use it in
> > my validation.
>
> Is the custom validation to do with data in the invoice?  I believe
> you can access the invoice that the details belong to in the
> validation.
>
> Also possibly reject_if on accepts_nested_attributes_for might do the job.
>
> If all else fails you could add a non-database attribute to invoice
> details and set that prior to saving, then pick it up in the
> validation.
>
> Colin

--
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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe@googlegroups.com.