> Not sure why it errors out now.
> Do you get the same error is it a different error this time?
>

this is my index

  def index
    @user= Users.all
    @pictograph = []

    @user.each do |p|
    @pic= Picture.where(:phrase_id => :route , :culture_id =>
p.culturet_id).first
    @pic.compact!
     end
  end

and my view is

<td><%= image_tag url_for(:controller => "/users", :action => "index"),
:width => "25px", :height => "25px"%></td>

my error:
  Processing by UsersController#index as
  User Load (1.0ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 1
LIMIT 1
  PictureLoad (7.0ms)  SELECT "pictures".* FROM "pictures" WHERE
"pictures"."phrase_id" = 'route' AND "pictures"."culturet_id" = 1 LIMIT 1
Completed   in 237ms

NoMethodError (You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.compact!):
  app/controllers/users_controller.rb:27:in `block in index'
  app/controllers/users_controller.rb:25:in `each'
  app/controllers/users_controller.rb:25:in `index'


>
> On Tue, Jun 21, 2011 at 9:05 PM, joanne ta <[email protected]> wrote:
>
>>
>> 1. Remove the send_data line, it isn't required.
>>
>> Yes, it did remove it.
>>
>>> 2. Can you check if there are any records in your pictures table? Right
>>> now it looks like it is returning nil.
>>>
>> Yes, It has 1 record in Picture table and 3 records in User Table
>>
>>
>>>
>>> On Tue, Jun 21, 2011 at 8:35 PM, joanne ta <[email protected]> wrote:
>>>
>>>>
>>>>
>>>> Can you paste what you have in your index method?
>>>>> You should not be getting this error because we have already defined
>>>>> @pic as an empty array.
>>>>>
>>>>>
>>>>
>>>>
>>>>>  def index
>>>>>
>>>>>     @users= User.all
>>>>>     @pic= []
>>>>>
>>>>>     @users.each do |p|
>>>>>     @pic<< Picture.where(:phrase_id => :route , :culture_id =>
>>>>> p.culture_id).first
>>>>>
>>>>>     end
>>>>>
>>>>>     @pic.compact!
>>>>>     send_data @pic.image, :type => 'image/png', :disposition =>
>>>>> 'inline'
>>>>>
>>>>>   end
>>>>>
>>>>>
>>>>> On Tue, Jun 21, 2011 at 8:10 PM, joanne ta <[email protected]>wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, Jun 21, 2011 at 10:27 AM, Chirag Singhal <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Oh yes... sorry about that.
>>>>>>> I assumed that you will find picture for every query.
>>>>>>>
>>>>>>> You can try this instead:
>>>>>>>  def index
>>>>>>>   @users= User.all
>>>>>>>   @pic = []
>>>>>>>
>>>>>>>   @users.each do |p|
>>>>>>>     @pic << Picture.where(:phrase_id => :route , :culture_id =>
>>>>>>> p.culture_id).limit(1)
>>>>>>>   end
>>>>>>>   @pic.compact!
>>>>>>> end
>>>>>>>
>>>>>>> by calling compact! on the array, we will eliminate all nil object.
>>>>>>>
>>>>>>> On another note, are you sure, this is what you want to do? If you
>>>>>>> have 100 users, it will fire 100 sql queries which is not good.
>>>>>>>
>>>>>>> Yes i think i have that problem as well because if i remove  
>>>>>>> "@users.each
>>>>>> do |p|    "
>>>>>> and then it will cause undefined method of culture_id..
>>>>>> plus when i call @pic.compact! , it gives me
>>>>>>
>>>>>> NoMethodError (You have a nil object when you didn't expect it!
>>>>>> You might have expected an instance of Array.
>>>>>> The error occurred while evaluating nil.compact!):
>>>>>>   app/controllers/patients_controller.rb:29:in `index'
>>>>>>
>>>>>> what is mean? cuz i want to display picture on the browser too...
>>>>>>
>>>>>> please help... thank you very much
>>>>>>
>>>>>> Joanne
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Jun 21, 2011 at 7:42 PM, joanne ta <[email protected]>wrote:
>>>>>>>
>>>>>>>> it does not work, it is complaining other error
>>>>>>>>
>>>>>>>> NoMethodError (undefined method `image' for [nil]:Array):
>>>>>>>>   app/controllers/patients_controller.rb:27:in `block in index'
>>>>>>>>   app/controllers/patients_controller.rb:25:in `each'
>>>>>>>>   app/controllers/patients_controller.rb:25:in `index'
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Tue, Jun 21, 2011 at 9:57 AM, Chirag Singhal <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Your index action should be something like this:
>>>>>>>>>
>>>>>>>>> def index
>>>>>>>>>   @users= User.all
>>>>>>>>>   @pic = []
>>>>>>>>>
>>>>>>>>>   @users.each do |p|
>>>>>>>>>     @pic << Picture.where(:phrase_id => :route , :culture_id =>
>>>>>>>>> p.culture_id).limit(1)
>>>>>>>>>   end
>>>>>>>>> end
>>>>>>>>> --
>>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>>> Groups "Ruby on Rails: Talk" group.
>>>>>>>>> To view this discussion on the web visit
>>>>>>>>> https://groups.google.com/d/msg/rubyonrails-talk/-/B259TKI0970J.
>>>>>>>>>
>>>>>>>>> To post to this group, send email to
>>>>>>>>> [email protected].
>>>>>>>>> To unsubscribe from this group, send email to
>>>>>>>>> [email protected].
>>>>>>>>> For more options, visit this group at
>>>>>>>>> http://groups.google.com/group/rubyonrails-talk?hl=en.
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> --------------------------------
>>>>>>>>
>>>>>>>> Thank you,
>>>>>>>>
>>>>>>>> Yen
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> 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
>>>>>>>> [email protected].
>>>>>>>> To unsubscribe from this group, send email to
>>>>>>>> [email protected].
>>>>>>>> For more options, visit this group at
>>>>>>>> http://groups.google.com/group/rubyonrails-talk?hl=en.
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Chirag
>>>>>>> http://sumeruonrails.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
>>>>>>> [email protected].
>>>>>>> To unsubscribe from this group, send email to
>>>>>>> [email protected].
>>>>>>> For more options, visit this group at
>>>>>>> http://groups.google.com/group/rubyonrails-talk?hl=en.
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> 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
>>>>>> [email protected].
>>>>>> To unsubscribe from this group, send email to
>>>>>> [email protected].
>>>>>> For more options, visit this group at
>>>>>> http://groups.google.com/group/rubyonrails-talk?hl=en.
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Chirag
>>>>> http://sumeruonrails.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 [email protected]
>>>>> .
>>>>> To unsubscribe from this group, send email to
>>>>> [email protected].
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/rubyonrails-talk?hl=en.
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> --------------------------------
>>>>
>>>> Thank you,
>>>>
>>>> Yen
>>>>
>>>> --
>>>> 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 [email protected].
>>>> To unsubscribe from this group, send email to
>>>> [email protected].
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/rubyonrails-talk?hl=en.
>>>>
>>>
>>>
>>>
>>> --
>>> Chirag
>>> http://sumeruonrails.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 [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected].
>>> For more options, visit this group at
>>> http://groups.google.com/group/rubyonrails-talk?hl=en.
>>>
>>
>>
>>
>> --
>> --------------------------------
>>
>> Thank you,
>>
>> Yen
>>
>>  --
>> 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 [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/rubyonrails-talk?hl=en.
>>
>
>
>
> --
> Chirag
> http://sumeruonrails.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 [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/rubyonrails-talk?hl=en.
>



-- 
--------------------------------

Thank you,

Yen

-- 
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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to