Koľajnice 2.2.2
_competition.html.erb
<p>This is packed</p>
<% pack do %>
// some javascript
<% end %>
competition_helper.rb
def pack(&block)
yield + "PACKED"
end
Avšak „PACKED“ sa k môjmu reťazcu javascript nepripojí, je to akoby pack do
nemá žiadny efekt. Zdá sa, že s kontextom blokov a vykresľovaním skutočného pohľadu odchádza nejaká zvláštnosť, pretože ak odstránim volanie na výťažok v pomocníkovi a vrátim pevne zakódovaný reťazec, nedostanem z balíka žiadny výstup.
odpovede:
2 pre odpoveď č. 1def pack(&block)
concat(capture(&block) + "PACKED")
end
0 pre odpoveď č. 2
Netestoval som to, ale môžete vyskúšať:
yield << "PACKED"
Je to len iný spôsob kombinácie 2 reťazcov.
0 pre odpoveď č. 3
Ako dočasné riešenie zatiaľ môžeme uviesť javascript do ďalšej časti a odovzdať ho pomocnej funkcii pomocou render_to_string
, tj. bez nutnosti volania yield
funguje.
<%= pack(render_to_string :partial => "_competition_javascript") %>