Forum: Ruby on Rails Why render doesn't work

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Zhao Y. (Guest)
on 2009-01-06 16:07
I use render in a view page like this:

<% form_for :project do |form|  %>
 <table>
     <tr>
  <td>
  <%=
  select_tag:project_selection,options_for_select(@project_names)
  %>
  <%=
  observe_field :project_selection,
    :frequency => 0.5,
    :update => 'project_version_ajax',
    :url => {:action => 'update_project_selection'} %>
  </td>
    </tr>
    <div id='project_version_ajax'>
  <%= render :partial=>'project_version' %>
    </div>
 </table>

<% end %>

In update_project_selection controller:

def update_project_selection
  ...
  render :partial=>'project_version'
end

when the select box changed its value, the controller is invoked but the
_project_version.html.erb doesn't update.
Frederick C. (Guest)
on 2009-01-06 16:28
(Received via mailing list)
On 6 Jan 2009, at 14:07, Zhao Yi wrote:

>  <%=
>  observe_field :project_selection,
>    :frequency => 0.5,
>    :update => 'project_version_ajax',
>    :url => {:action => 'update_project_selection'} %>
>  </td>
>    </tr>
>    <div id='project_version_ajax'>
>  <%= render :partial=>'project_version' %>
>    </div>
> </table>

I don't believe it's legal HTML to have a div there.

Fred
Zhao Y. (Guest)
on 2009-01-06 16:53
Frederick C. wrote:
>
> I don't believe it's legal HTML to have a div there.
>
> Fred

Why? Could you tell me what wrong with my code?
Frederick C. (Guest)
on 2009-01-06 16:58
(Received via mailing list)
On 6 Jan 2009, at 14:53, Zhao Yi wrote:

>
> Frederick C. wrote:
>>
>> I don't believe it's legal HTML to have a div there.
>>
>> Fred
>
> Why? Could you tell me what wrong with my code?
>
That's just the way it is, divs aren't allowed there (just as you
can't do <span><div></div></span> either). Try putting your html
through the w3c validator

Fred
Zhao Y. (Guest)
on 2009-01-07 02:56
Frederick C. wrote:
> That's just the way it is, divs aren't allowed there (just as you
> can't do <span><div></div></span> either). Try putting your html
> through the w3c validator
>
> Fred
A render must be in an element. If I can't use div in this case, how can
I render it?
Jeffrey L. Taylor (Guest)
on 2009-01-07 03:14
(Received via mailing list)
Quoting Zhao Yi <removed_email_address@domain.invalid>:
>
> Frederick C. wrote:
> > That's just the way it is, divs aren't allowed there (just as you
> > can't do <span><div></div></span> either). Try putting your html
> > through the w3c validator
> >
> > Fred
> A render must be in an element. If I can't use div in this case, how can
> I render it?

Your element (the <div>...</div>) isn't in a valid place.  You have it
between
a row and the end of the table.  Is it supposed to straddle the table
boundary?  Either move it into the <td>...</td> or outside the table as
appropriate.  Or put it in a table row of its own.

Jeffrey
This topic is locked and can not be replied to.