Question: I currently have a design like follows

View1(mainview) creates a view2, sets a reference back to view1 in view2, presents view2

view2 creates a view3, sets view3 to have the same view1 reference, presents view3

view3 then needs to , depending on user selection, call a function on view1, which currently works perfectly and it should then present view1.

The issue is I need a way of showing view1 when view3 is done, so this reference gets passed along and clearly works because the method called on it executes. The issue I have is when trying to present it the app freezes. I also tried creating a new view1, setting it to the reference and presenting that, this causes a freeze too.

What could be the issue? I present it like everything else.

Answer: 
I suddenly realised what caused my problem. 

I had previously changed the default setting for mass\_assignment in a config file to enforce that all attributes were protected unless declared otherwise.

An obvious mistake in retrospect but hopefully this might save someone else some time too
To add to Peter Nixey's answer, to resolve this problem in rails 3 I changed the following:

```
# application.rb
config.active_record.whitelist_attributes = false #it was true

```

When set to true, a whitelist is enforced for all attributes that can be mass assigned. This needs to be disabled or you can add them to the white list with 

```
attr_accessible <your attributes> 

```

**Edit**

As Peter quite rightly points out in the comments; by setting the configuration to false you leave yourself open to mass\_assignment attacks, so using the white list is the securest option,