Schienen Neuling. Sei sanft. Wenn ich mehr Zeug zeigen muss, werde ich es tun.Verbinden mehrerer Erträge in Schienen
Der Versuch, einen Newsletter-Anmeldung Block über meine Fußzeile auf einem Projekt einzufügen, aber es in den Layouts einrichten eine teilweise nicht machen.
Ich habe den Ertrag einen Index aus einem Blog ausgibt.
Im Moment ist es einfach nur sagen, „false“ auf meinem lokalen Rechner.
Ist es möglich, mehrere Renditen für verschiedene Indizes zu haben?
Ist es möglich, eine andere Seite in eine Layoutseite einzufügen?
application.html.erb
<div id="blog">
<%= yield %>
</div>
<div>
<%= content_for?(:newsletter) ? yield(:newsletter) : yield %>
</div>
<div>
<%= render 'layouts/footer' %>
</div>
newsletter.html.erb
<% content_for :newsletter do %>
<h1>Get My Awesome News Letter</h1>
<p>Give me your email and keep up to date on my cat's thoughts.</p>
<%= form_tag('/emailapi/subscribe', method: "post", id: "subscribe", remote: "true") do -%>
<%= email_field(:email, :address, {id: "email", placeholder: "email address"}) %>
<%= submit_tag("Sign me up!") %>
<% end %>
emailapi_controller.rb
class EmailapiController < ApplicationController
def newsletter
render params[:newsletter]
end
def subscribe
gb = Gibbon::Request.new
gb.lists.subscribe({
:id => ENV["MAILCHIMP_LIST_ID"],
:email => {:email => params[:email][:address]}
})
end
end
routes.rb
root to: 'posts#index'
get "/:newsletter" => 'emailapi#newsletter'
post 'emailapi/subscribe' => 'emailapi#subscribe'
Sie sollten nicht diese bedingten Test benötigen: 'content_for (:Newsletter) ? yield (: newsletter): yield: probiere nur: '<% = content_for: newsletter%>' was im Prinzip das obige für dich tut :) (beachte die '<% =' wichtig) http://apidock.com/rails/ v4.2.1/ActionView/Helfer/CaptureHelper/content_for –