Spree wykonanie i instalacja własnego modułu

routes.rb (resource) -> controller -> widok -> partial. Poza tym czy jesteś pewien że to ten model?

Nie napewno nie ten model, akurat tutaj próbowałem samemu zrobić jakiś model i nic mi nie wychodziło.
W readme spree_newsletter_subscribers jest tylko to : And…Insert partial into views where appropriate nie ma nic jak to podłączyć do strony, jak np mogę wdrożyć swój newsletter
Panel admina wygląda tak

screenchoty konsoli i edytora? o_O

używaj znacznika [ code ] (np. [ code=ruby ], bez spacji oczywiście), ewentualnie wrzuć tutaj: https://gist.github.com/

A poza tym:

  1. Nie nazywaj klas polskimi nazwami.
  2. Jako taba używaj dwóch spacji (w ST2 łatwo skonfigurować takie domyślne użycie taba).

Co do samego extensiona - zajrzałem tam i nie widzę by robił to, co ma robić :slight_smile:

Musisz sobie stworzyć jakąś route, do niej kontroler i widok (bo model jakiś tam niby jest).
Nie wiem, czy nie lepiej zrobić sobie takie coś samemu from scratch (nie zapomnij później wrzucić tego na githuba :slight_smile: )
Jakieś skrawki podobnego plugina widziałem też tutaj: https://github.com/complistic-gaff/spree-newsletters

Trochę inaczej robię zainstalowałem spree_mail_chimp on ma te wszystkie moduły które mnię interesują tylko po kliknięciu przycisku subscribe dostaję błąd : uninitialized constant Hominid::ListError ?

zlw i Lypa dzięki chłopaki za uwagi wezmę je do serca :slight_smile:

Wrzuć gdzieś pełen backtrace i kod jak to robisz, to coś postaram się poradzić.

Kod w moim pliku spree_application.html.erb wyglada tak:

<div id="footer_right"> <%= render :partial => 'spree/shared/newsletter_subscribe_form' %> <div id="footer_info"> <div id="footer_dane"> <div id="footer_pay">
Natomiast w pliku views / spree / shared / _newsletter_subscribe_form.html.erb

[code]


<%= form_for :user, :url => :subscriptions do |f| %>






<%= text_field_tag :email, t(‘enter_your_email’), :class => ‘email’, :id => ‘subscribe_email’ %>

<%= submit_tag t(‘subscribe’), :id => ‘op_subscribe’ %>

<% end -%>
[/code] a w pliku app / controllers / spree / subscriptions_controller.rb [code]class Spree::SubscriptionsController < Spree::BaseController

def hominid
@hominid ||= Hominid::Base.new({ :api_key => Spree::Config.get(:mailchimp_api_key) })
end

def create
@errors = []

if params[:email].blank?
  @errors << t('missing_email')
elsif params[:email] !~ /[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/i
  @errors << t('invalid_email_address')
else
  begin
    self.class.benchmark "Checking if address exists and/or is valid" do
      @mc_member = hominid.member_info(Spree::Config.get(:mailchimp_list_id), params[:email])
    end
    rescue Hominid::ListError => e
  end

  if @mc_member
    @errors << t('that_address_is_already_subscribed')
  else
    begin
      self.class.benchmark "Adding mailchimp subscriber" do
        hominid.subscribe(Spree::Config.get(:mailchimp_list_id), params[:email], {}, MailChimpSync::Sync::mc_subscription_opts)
      end
    rescue Hominid::ValidationError => e
      @errors << t('invalid_email_address')
    end
  end
end

respond_to do |wants|
  wants.js
end

end
end[/code]
A gdy wpisuję tu :

Wyrzuca mi to:

Zapomniałem dodać mam spree 1.1.3 dotego Mail Chimp mam nadany API Key i List ID

Spróbuj jakiś bardziej generyczny error tam łapać zamiast Hominid::ListError (w subscriptions_controller.rb:19)

? Nie rozumiem :frowning: ocb…

Próbujesz tam złapać:
rescue Hominid::ListError => e

A ja miałem na myśli, byś złapał tam jakiś inny (wyżej w hierarchii klas) wyjątek.

https://github.com/sbeam/spree-mail-chimp z tego korzystam

Wiem, z czego korzystasz :slight_smile:
Podałem Ci linijkę i co możesz spróbować zmienić, nie rozumiem czego nie rozumiesz :slight_smile:

No właśnie dalej nie wiem co mam zmienić :frowning: jaki wyżej wyjątek. Ta część linijki kodu którą podałeś jest identyczna z kodem błędu.
Dla mnie łopatologicznie proszę :slight_smile:

Ok, łopatologicznie:

Hominid::ListError po czymś dziedziczy (nadrzędny error), więc złap (rescue) ten nadrzędny error w tej linijce zamiast tego, który aktualnie łapiesz.

doczytaj o wyjątkach w Rubym, jak je obsługiwać, jaka jest hierarchia itd. - http://rubylearning.com/satishtalim/ruby_exceptions.html

Może Tobie to oczywiste, dla mnie nie bardzo … Możesz przytoczyć jakiś przykładowy fragment kodu abym prezentujący tę zależność? Abym wiedział dokładnie czego szukać.