SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
www.filemaker-konferenz.com
Mit Open Source Software eine Webapplikation erstellen
Stefan Husch
s.husch@qutic.com
qutic development
Consulting, Development, Hosting
Open Source - eine FileMaker Alternative?
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Stefan Husch
• Inhaber qutic development
• Consulting, Development, Hosting
• Security- & Privacy-Focus
• FileMaker-Entwickler 1993-2006
• Webentwickler 2005-heute
• Vorträge zum Thema Server-Orchestration,
Virtualisierung, Hochverfügbarkeit, Security
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Wahl des richtigen Tools
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Wahl des richtigen Tools
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
FileMaker: Vor- & Nachteile
+ Graphische Oberfläche
+ Geringe Lernkurve
+ Schnelles Prototyping
+ Das FileMaker Magazin Forum
- Graphische Oberfläche
- Maus-Arm
- Lizenzkosten
- Keine Entwickler-Leitlinien
- Schwer zu erweitern (Plugins)
- Schlecht zu skalieren
- Schlecht zu dokumentieren
(SourceCode)
- Keine automatisierten Tests
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Wahl des richtigen Tools
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Rails: Vor- & Nachteile
+ Open Source
+ Textbasierte Entwicklung
+ Versionskontrolle
+ Schnelle App-Entwicklung
+ Entwickler-Leitlinien
+ Flexibel
+ Beliebig zu skalieren
+ Gut zu dokumentieren
+ Automatisierte Tests
+ Endlose Möglichkeiten
- Steilere Lernkurve
- Endlose Möglichkeiten
- Dokumentation in Englisch
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Entwicklungskosten
Web == FMP *
*große Projekte: Web < FMP
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Warum ein Webframework?
• Datenbankzugriff (Object-relational mapping, ORM)
• Templatesysteme (View)
• Scaffolding (Gerüstbau für Controller, Model, View)
• Routing (URL-Struktur)
• Role Based User Authentification (Wer darf was)
• Lokalisierung (Mehrsprachigkeit)
• Sicherheitsfunktionen (SQL-Injection, XSS, etc.)
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Warum Rails?
• Ausgereiftes Webframework (seit 2005, Vorbild für Andere)
• Objektorientiert
• Don’t repeat yourself
• Konvention vor Konfiguration
• Einfach zu lernen
• Sehr große Community
• Vielfalt an vorhandenen Bibliotheken (gems)
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Endlose Möglichkeiten
• Welche Datenbank wähle ich?
PostgreSQL, MySQL, SQLite, MonoDB, Oracle, etc.
• Welche Template-Engine wähle ich?
Haml, ERB, etc.
• Welches CSS-Framework wähle ich?
Sass, SCSS, Less, Stylus, etc.
• Welche Background-Queue wähle ich?
Sidekiq, DelayedJob, Resque, RabbitMQ, etc.
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
FileMaker Starter Solutions
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Keep it simple
• Ziel: Intranet-Applikation für maximal 250 Benutzer
• Datenbank: SQLite
• Template-Engine: -
• CSS-Framework: -
• Background-Queue: -
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Entwicklungs-Umgebung
• Ruby (Programmiersprache)
• Rails (Webframework)
• bundler (Installations-Automatisierung für Ruby Bibliotheken)
• rvm (Ruby Version Manager)
• git (Versionskontrollsystem)
• TextMate (Textverarbeitung, macOS)
• SQLite
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
„Textbasierte Entwicklung“
$
$
$
$
$
$ # Das Terminal ist Dein Freund :)
$
$
$
$
$
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Ruby und Rails installieren
$ curl -sSL https://get.rvm.io | bash -s head
$ rvm install ruby-2.4.2
$ gem install bundler
$ echo "rvm use ruby-2.4.2@contacts --create" 
> .rvmrc
$ source .rvmrc
$ gem install rails
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Rails Projekt erstellen
$ rails new contacts -d sqlite3
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Rails Projekt ansehen
$ cd contacts
$ m . # öffnet das Projekt in TextMate
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Rails Überblick
• Model-View-Controller Architektur (MVC)
• active_record (ORM)
• Klare Projekt-Struktur
• Konfiguration
• Initializers
• Routes
• Datenbank-Schema
• Datenbank-Migration
• Gemfile
• Log
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Was ist ActiveAdmin?
• Rails-Erweiterung (Engine)
• Keine Controller und Views nötig (aber möglich)
• Domain-specific language (DSL)
• Einfache Entwicklung
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Und los geht es
$ cat <<EOF >> Gemfile
gem 'activeadmin'
gem 'devise'
EOF
$
$ bundle
$ rails generate active_admin:install
$ rails db:migrate
$ rails db:seed
$
$ git init .
$ git add .
$ git commit -m "initial commit"
$
$ rails server
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Browser-Ansicht
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Datenbank-Model FileMaker
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Datenbank-Model Rails
persons
id
group_id
title
first_name
last_name
company
job_title
notes
addresses
id
person_id
type
street
street_addition
city
zip
groups
id
name
contact_types
id
name
contacts
id
person_id
contact_type_id
contact
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Modell erstellen
$ rails generate model group 
name:string
$
$ rails generate model contact_type 
name:string
$
$ rails generate model contact 
person:belongs_to 
contact_type:belongs_to 
contact:string
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Modell erstellen
$ rails generate model person 
group:belongs_to 
title:string 
first_name:string 
last_name:string 
company:string 
job_title:string 
notes:text
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Modell erstellen
$ rails generate model address 
person:belongs_to 
mode:string 
street:string 
street_addition:string 
city:string 
zip:string
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
ActiveAdmin-Ressourcen erstellen
$ rails generate active_admin:resource Person
$ rails generate active_admin:resource Address
$ rails generate active_admin:resource Group
$ rails generate active_admin:resource ContactType
$ rails generate active_admin:resource Contact
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Select-Menu Daten erstellen
$ cat <<EOF >> db/seeds.rb
Group.create!(name: 'Personal')
Group.create!(name: 'Professional')
Group.create!(name: 'Family')
Group.create!(name: 'Friend')
ContactType.create!(name: 'Office Phone')
ContactType.create!(name: 'Mobile Phone')
ContactType.create!(name: 'Personal Phone')
ContactType.create!(name: 'Fax')
ContactType.create!(name: 'Office Email')
ContactType.create!(name: 'Personal Email')
ContactType.create!(name: 'FaceTime')
ContactType.create!(name: 'Twitter')
EOF
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Datenbank-Migration
$ rails db:drop
$ rails db:create
$ rails db:migrate
$ rails db:seed
$
$ git add .
$ git commit -m "integrate ActiveAdmin"
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Browser-Ansicht
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Todo
• Comments deaktivieren
• permit_params in allen ActiveAdmin-Resources setzen
• routes.rb: root to: redirect('/admin')
• Addresses und Contacts aus Menü entfernen (menu false)
• Model-Relations erweitern
• ActiveAdmin-Ressourcen anpassen
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
ActiveAdmin-Ressourcen anpassen
# app/admin/address.rb
ActiveAdmin.register Address do
menu false
permit_params :person_id, :type, :street, :street_addition, :city, :zip
end
# app/admin/contact_type.rb
ActiveAdmin.register ContactType do
permit_params :name
end
# app/admin/contact.rb
ActiveAdmin.register Contact do
menu false
permit_params :person_id, :contact_type_id, :contact
end
# app/admin/group.rb
ActiveAdmin.register Group do
permit_params :name
end
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
ActiveAdmin-Ressourcen anpassen
# app/admin/person.rb
ActiveAdmin.register Person do
permit_params :group_id, :title, :first_name, :last_name, :company,
:job_title, :notes,
contacts_attributes: [:id, :contact_type_id, :contact],
addresses_attributes: [:id, :person_id, :mode, :street,
:street_addition, :city, :zip]
show do
attributes_table_for person do
Person.column_names.each do |c|
row c.to_sym
end
end
table_for person.contacts do
column "Type", :contact_type
column "Contact", :contact
end
table_for person.addresses do
column "Mode", :mode
column "Street", :street
column "Addition", :street_addition
column "City", :city
column "Zip", :zip
end
end
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
ActiveAdmin-Ressourcen anpassen
form :html => {:multipart => true} do |f|
f.inputs 'Person' do
f.input :group
f.input :title
f.input :first_name
f.input :last_name
f.input :company
f.input :job_title
f.input :notes
f.input :image, as: :file
end
f.inputs do
f.has_many :contacts, allow_destroy: true do |c|
c.input :contact_type
c.input :contact
end
end
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
ActiveAdmin-Ressourcen anpassen
f.inputs do
f.has_many :addresses,
allow_destroy: true do |a|
a.input :mode, :as => :select, :collection => [ ['Work','Work'],
['Personal','Personal'] ]
a.input :street
a.input :street_addition
a.input :city
a.input :zip
end
end
f.actions
end
end
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Model erweitern
# app/model/person.rb
class Person < ApplicationRecord
belongs_to :group
has_many :contacts
has_many :addresses
accepts_nested_attributes_for :contacts, reject_if: :all_blank, allow_destroy: true
accepts_nested_attributes_for :addresses, reject_if: :all_blank, allow_destroy: true
def name
[title, first_name, last_name].join(" ").strip
end
end
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Browser-Ansicht
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Bild-Upload
$ cat <<EOF >> Gemfile
gem 'paperclip'
EOF
$
$ bundle
$ rails generate paperclip person image
$
$ # fix migration file
$ sed -i '' -e "s#ActiveRecord::Migration#ActiveRecord::Migration[5.1]#g" 
db/migrate/*_add_attachment_image_to_people.rb
$
$ rails db:migrate
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Image-Referenz hinzufügen
# app/admin/person.rb
ActiveAdmin.register Person do
permit_params :group_id, :title, :first_name, :last_name, :company, :job_title, :notes,
:image,
contacts_attributes: [:id, :contact_type_id, :contact],
addresses_attributes: [:id, :person_id, :mode, :street,
:street_addition, :city, :zip]
# app/model/person.rb
class Person < ApplicationRecord
has_attached_file :image, styles: { medium: "300x300>",
thumbnail: "100x100>" }
validates_attachment_content_type :image,
:content_type => [ "image/jpg",
"image/jpeg",
"image/png",
"image/gif" ]
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Browser-Ansicht
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
?
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Links zum Vortrag
• https://speakerdeck.com/qutic
• https://de.wikipedia.org/wiki/Webframework
• http://rubyonrails.org
• https://www.ruby-lang.org/en/
• https://rvm.io
• https://stackoverflow.com/questions/15691977/why-start-a-shell-command-
with-a-backslash
• http://bundler.io
• https://gorails.com/setup/windows/10
• http://macromates.com/download
• https://activeadmin.info
• https://activeadmin.info/documentation.html
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Open Source - eine FileMaker Alternative? | Stefan Husch
Weiter lernen
• https://github.com/activeadmin/activeadmin/wiki
• https://gorails.com/episodes/using-activeadmin-to-build-an-admin-ui
• https://spin.atomicobject.com/2016/07/23/file-upload-active-admin-paperclip/
• https://pragprog.com/book/ruby4/programming-ruby-1-9-2-0
• https://pragprog.com/book/rails51/agile-web-development-with-rails-5-1
• http://railscasts.com
8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017
Vortrag und Sprecher
Vielen Dank unseren Sponsoren

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

FMK2017 - Der Bug - des Entwicklers Fluch by Jörg Köster
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg KösterFMK2017 - Der Bug - des Entwicklers Fluch by Jörg Köster
FMK2017 - Der Bug - des Entwicklers Fluch by Jörg Köster
 
FMK2017 - Tools für FileMaker Entwickler by Alexis Gehrt
FMK2017 -  Tools für FileMaker Entwickler by Alexis GehrtFMK2017 -  Tools für FileMaker Entwickler by Alexis Gehrt
FMK2017 - Tools für FileMaker Entwickler by Alexis Gehrt
 
FMK2017 - Wordpress und FileMaker by Karsten Risseeuw
FMK2017 - Wordpress und FileMaker by Karsten RisseeuwFMK2017 - Wordpress und FileMaker by Karsten Risseeuw
FMK2017 - Wordpress und FileMaker by Karsten Risseeuw
 
FMK2017 - Was ist neu in FileMaker 16 by Michael Valentin
FMK2017 - Was ist neu in FileMaker 16 by Michael ValentinFMK2017 - Was ist neu in FileMaker 16 by Michael Valentin
FMK2017 - Was ist neu in FileMaker 16 by Michael Valentin
 
FMK2017 - FileMaker iOS App SDK by Robert Kaiser
FMK2017 - FileMaker iOS App SDK by Robert KaiserFMK2017 - FileMaker iOS App SDK by Robert Kaiser
FMK2017 - FileMaker iOS App SDK by Robert Kaiser
 
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
 
FMK2017 - Plugins für die FileMaker Cloud by Christian Schmitz
FMK2017 - Plugins für die FileMaker Cloud by Christian SchmitzFMK2017 - Plugins für die FileMaker Cloud by Christian Schmitz
FMK2017 - Plugins für die FileMaker Cloud by Christian Schmitz
 
FMK2017 - MBS FileMaker Plugin by Christian Schmitz
FMK2017 - MBS FileMaker Plugin by Christian SchmitzFMK2017 - MBS FileMaker Plugin by Christian Schmitz
FMK2017 - MBS FileMaker Plugin by Christian Schmitz
 
FMK2017 - iBeacons und FileMaker by Alexis Gehrt
FMK2017 -  iBeacons und FileMaker by Alexis GehrtFMK2017 -  iBeacons und FileMaker by Alexis Gehrt
FMK2017 - iBeacons und FileMaker by Alexis Gehrt
 
FMK2017 - GUI Tipps für mobile Lösungen by Robert Kaiser
FMK2017 - GUI Tipps für mobile Lösungen by Robert KaiserFMK2017 - GUI Tipps für mobile Lösungen by Robert Kaiser
FMK2017 - GUI Tipps für mobile Lösungen by Robert Kaiser
 
FMK2017 - WebDirect vs. FileMaker Pro by Klemens Kegebein und Holger Darjus
FMK2017 - WebDirect vs. FileMaker Pro by Klemens Kegebein und Holger DarjusFMK2017 - WebDirect vs. FileMaker Pro by Klemens Kegebein und Holger Darjus
FMK2017 - WebDirect vs. FileMaker Pro by Klemens Kegebein und Holger Darjus
 
FMK2017 - Die Anker Boje Methode by Gerhard Schwingenschlögl
FMK2017 - Die Anker Boje Methode by Gerhard SchwingenschlöglFMK2017 - Die Anker Boje Methode by Gerhard Schwingenschlögl
FMK2017 - Die Anker Boje Methode by Gerhard Schwingenschlögl
 
FMK2017 - Plugins für FileMaker SDK für iOS by Christian Schmitz
FMK2017 - Plugins für FileMaker SDK für iOS by Christian SchmitzFMK2017 - Plugins für FileMaker SDK für iOS by Christian Schmitz
FMK2017 - Plugins für FileMaker SDK für iOS by Christian Schmitz
 
FMK2016 - Arnold Kegebein - Recycling
FMK2016 - Arnold Kegebein - RecyclingFMK2016 - Arnold Kegebein - Recycling
FMK2016 - Arnold Kegebein - Recycling
 
FMK2016 - Holger Darjus und Jörg Köster - Migration und Synchronisation
FMK2016 - Holger Darjus und Jörg Köster - Migration und SynchronisationFMK2016 - Holger Darjus und Jörg Köster - Migration und Synchronisation
FMK2016 - Holger Darjus und Jörg Köster - Migration und Synchronisation
 
FMK2016 - Christian Schmitz - MBS FileMaker Plugin
FMK2016 - Christian Schmitz - MBS FileMaker PluginFMK2016 - Christian Schmitz - MBS FileMaker Plugin
FMK2016 - Christian Schmitz - MBS FileMaker Plugin
 
FMK 2016 - Robert Kaiser - FileMaker iOS App SDK
FMK 2016 - Robert Kaiser - FileMaker iOS App SDKFMK 2016 - Robert Kaiser - FileMaker iOS App SDK
FMK 2016 - Robert Kaiser - FileMaker iOS App SDK
 
FMK2015: Entwicklung von modernen Benutzeroberflächen mit FileMaker Pro by Ad...
FMK2015: Entwicklung von modernen Benutzeroberflächen mit FileMaker Pro by Ad...FMK2015: Entwicklung von modernen Benutzeroberflächen mit FileMaker Pro by Ad...
FMK2015: Entwicklung von modernen Benutzeroberflächen mit FileMaker Pro by Ad...
 
FMK2016 - Ingo Thoden - Etikettendruck in über 20 Sprachen
FMK2016 - Ingo Thoden - Etikettendruck in über 20 SprachenFMK2016 - Ingo Thoden - Etikettendruck in über 20 Sprachen
FMK2016 - Ingo Thoden - Etikettendruck in über 20 Sprachen
 
FMK2016 - Holger Darjus - Das Transistor-Prinzip
FMK2016 - Holger Darjus - Das Transistor-PrinzipFMK2016 - Holger Darjus - Das Transistor-Prinzip
FMK2016 - Holger Darjus - Das Transistor-Prinzip
 

Ähnlich wie FMK2017 - Webdevelopment mit Rails by Stefan Husch qutic.com

Ähnlich wie FMK2017 - Webdevelopment mit Rails by Stefan Husch qutic.com (15)

Laudatio Workshop Entwicklersession zu Gemeinsamkeiten in Forschungsdatenrepo...
Laudatio Workshop Entwicklersession zu Gemeinsamkeiten in Forschungsdatenrepo...Laudatio Workshop Entwicklersession zu Gemeinsamkeiten in Forschungsdatenrepo...
Laudatio Workshop Entwicklersession zu Gemeinsamkeiten in Forschungsdatenrepo...
 
FMK2017 - Schnittstellen zu Fremdsystemen by Robert Rohrkemper-
FMK2017 - Schnittstellen zu Fremdsystemen by Robert Rohrkemper-FMK2017 - Schnittstellen zu Fremdsystemen by Robert Rohrkemper-
FMK2017 - Schnittstellen zu Fremdsystemen by Robert Rohrkemper-
 
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
 
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
 
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp Puls
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp PulsFMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp Puls
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp Puls
 
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC Brauch ich da wen, oder...
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC Brauch ich da wen, oder...FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC Brauch ich da wen, oder...
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC Brauch ich da wen, oder...
 
DSpace 5 und Linked (Open) Data
DSpace 5 und Linked (Open) DataDSpace 5 und Linked (Open) Data
DSpace 5 und Linked (Open) Data
 
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
 
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard SchulzFMK2022 FileMaker DataAPI und Java von Bernhard Schulz
FMK2022 FileMaker DataAPI und Java von Bernhard Schulz
 
FMK2018 Mein erster FileMaker Server Was ist das? Was kann der Server? Brauch...
FMK2018 Mein erster FileMaker Server Was ist das? Was kann der Server? Brauch...FMK2018 Mein erster FileMaker Server Was ist das? Was kann der Server? Brauch...
FMK2018 Mein erster FileMaker Server Was ist das? Was kann der Server? Brauch...
 
FMK2018- FileMaker und Linux mit SSH zusammenführen Christian Schmitz
FMK2018- FileMaker und Linux mit SSH zusammenführen Christian SchmitzFMK2018- FileMaker und Linux mit SSH zusammenführen Christian Schmitz
FMK2018- FileMaker und Linux mit SSH zusammenführen Christian Schmitz
 
FMK2019 PSoS - Perform Script on Server Wie einsetzen und wie entwickeln? by ...
FMK2019 PSoS - Perform Script on Server Wie einsetzen und wie entwickeln? by ...FMK2019 PSoS - Perform Script on Server Wie einsetzen und wie entwickeln? by ...
FMK2019 PSoS - Perform Script on Server Wie einsetzen und wie entwickeln? by ...
 
FMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.com
FMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.comFMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.com
FMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.com
 
Alfresco Day Vienna 2016: Entwickeln mit Alfresco
Alfresco Day Vienna 2016: Entwickeln mit AlfrescoAlfresco Day Vienna 2016: Entwickeln mit Alfresco
Alfresco Day Vienna 2016: Entwickeln mit Alfresco
 
FMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico Busch
FMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico BuschFMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico Busch
FMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico Busch
 

Mehr von Verein FM Konferenz

Mehr von Verein FM Konferenz (20)

FMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfFMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdf
 
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
 
FMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsFMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp Puls
 
FMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzFMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin Schwarz
 
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzFMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
 
FMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam Augusting
 
FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam Augustin
 
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserFMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
 
FMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtFMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas Hirt
 
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
 
FMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonFMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell Watson
 
FMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussFMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph Kluss
 
FMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussFMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph Kluss
 
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfFMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
 
FMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonFMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell Watson
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
 
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaFMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
 
FMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaFMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza Koudelka
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
 
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster
FMK2019 Layout und Eigene Menüs-Management  by Jörg KösterFMK2019 Layout und Eigene Menüs-Management  by Jörg Köster
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster
 

FMK2017 - Webdevelopment mit Rails by Stefan Husch qutic.com

  • 1. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 www.filemaker-konferenz.com Mit Open Source Software eine Webapplikation erstellen Stefan Husch s.husch@qutic.com qutic development Consulting, Development, Hosting Open Source - eine FileMaker Alternative?
  • 2. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Stefan Husch • Inhaber qutic development • Consulting, Development, Hosting • Security- & Privacy-Focus • FileMaker-Entwickler 1993-2006 • Webentwickler 2005-heute • Vorträge zum Thema Server-Orchestration, Virtualisierung, Hochverfügbarkeit, Security
  • 3. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Wahl des richtigen Tools
  • 4. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Wahl des richtigen Tools
  • 5. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch FileMaker: Vor- & Nachteile + Graphische Oberfläche + Geringe Lernkurve + Schnelles Prototyping + Das FileMaker Magazin Forum - Graphische Oberfläche - Maus-Arm - Lizenzkosten - Keine Entwickler-Leitlinien - Schwer zu erweitern (Plugins) - Schlecht zu skalieren - Schlecht zu dokumentieren (SourceCode) - Keine automatisierten Tests
  • 6. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Wahl des richtigen Tools
  • 7. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Rails: Vor- & Nachteile + Open Source + Textbasierte Entwicklung + Versionskontrolle + Schnelle App-Entwicklung + Entwickler-Leitlinien + Flexibel + Beliebig zu skalieren + Gut zu dokumentieren + Automatisierte Tests + Endlose Möglichkeiten - Steilere Lernkurve - Endlose Möglichkeiten - Dokumentation in Englisch
  • 8. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Entwicklungskosten Web == FMP * *große Projekte: Web < FMP
  • 9. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Warum ein Webframework? • Datenbankzugriff (Object-relational mapping, ORM) • Templatesysteme (View) • Scaffolding (Gerüstbau für Controller, Model, View) • Routing (URL-Struktur) • Role Based User Authentification (Wer darf was) • Lokalisierung (Mehrsprachigkeit) • Sicherheitsfunktionen (SQL-Injection, XSS, etc.)
  • 10. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Warum Rails? • Ausgereiftes Webframework (seit 2005, Vorbild für Andere) • Objektorientiert • Don’t repeat yourself • Konvention vor Konfiguration • Einfach zu lernen • Sehr große Community • Vielfalt an vorhandenen Bibliotheken (gems)
  • 11. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Endlose Möglichkeiten • Welche Datenbank wähle ich? PostgreSQL, MySQL, SQLite, MonoDB, Oracle, etc. • Welche Template-Engine wähle ich? Haml, ERB, etc. • Welches CSS-Framework wähle ich? Sass, SCSS, Less, Stylus, etc. • Welche Background-Queue wähle ich? Sidekiq, DelayedJob, Resque, RabbitMQ, etc.
  • 12. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch FileMaker Starter Solutions
  • 13. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch
  • 14. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Keep it simple • Ziel: Intranet-Applikation für maximal 250 Benutzer • Datenbank: SQLite • Template-Engine: - • CSS-Framework: - • Background-Queue: -
  • 15. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Entwicklungs-Umgebung • Ruby (Programmiersprache) • Rails (Webframework) • bundler (Installations-Automatisierung für Ruby Bibliotheken) • rvm (Ruby Version Manager) • git (Versionskontrollsystem) • TextMate (Textverarbeitung, macOS) • SQLite
  • 16. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch „Textbasierte Entwicklung“ $ $ $ $ $ $ # Das Terminal ist Dein Freund :) $ $ $ $ $
  • 17. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Ruby und Rails installieren $ curl -sSL https://get.rvm.io | bash -s head $ rvm install ruby-2.4.2 $ gem install bundler $ echo "rvm use ruby-2.4.2@contacts --create" > .rvmrc $ source .rvmrc $ gem install rails
  • 18. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Rails Projekt erstellen $ rails new contacts -d sqlite3
  • 19. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Rails Projekt ansehen $ cd contacts $ m . # öffnet das Projekt in TextMate
  • 20. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Rails Überblick • Model-View-Controller Architektur (MVC) • active_record (ORM) • Klare Projekt-Struktur • Konfiguration • Initializers • Routes • Datenbank-Schema • Datenbank-Migration • Gemfile • Log
  • 21. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch
  • 22. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Was ist ActiveAdmin? • Rails-Erweiterung (Engine) • Keine Controller und Views nötig (aber möglich) • Domain-specific language (DSL) • Einfache Entwicklung
  • 23. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Und los geht es $ cat <<EOF >> Gemfile gem 'activeadmin' gem 'devise' EOF $ $ bundle $ rails generate active_admin:install $ rails db:migrate $ rails db:seed $ $ git init . $ git add . $ git commit -m "initial commit" $ $ rails server
  • 24. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Browser-Ansicht
  • 25. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch
  • 26. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Datenbank-Model FileMaker
  • 27. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Datenbank-Model Rails persons id group_id title first_name last_name company job_title notes addresses id person_id type street street_addition city zip groups id name contact_types id name contacts id person_id contact_type_id contact
  • 28. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Modell erstellen $ rails generate model group name:string $ $ rails generate model contact_type name:string $ $ rails generate model contact person:belongs_to contact_type:belongs_to contact:string
  • 29. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Modell erstellen $ rails generate model person group:belongs_to title:string first_name:string last_name:string company:string job_title:string notes:text
  • 30. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Modell erstellen $ rails generate model address person:belongs_to mode:string street:string street_addition:string city:string zip:string
  • 31. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch ActiveAdmin-Ressourcen erstellen $ rails generate active_admin:resource Person $ rails generate active_admin:resource Address $ rails generate active_admin:resource Group $ rails generate active_admin:resource ContactType $ rails generate active_admin:resource Contact
  • 32. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Select-Menu Daten erstellen $ cat <<EOF >> db/seeds.rb Group.create!(name: 'Personal') Group.create!(name: 'Professional') Group.create!(name: 'Family') Group.create!(name: 'Friend') ContactType.create!(name: 'Office Phone') ContactType.create!(name: 'Mobile Phone') ContactType.create!(name: 'Personal Phone') ContactType.create!(name: 'Fax') ContactType.create!(name: 'Office Email') ContactType.create!(name: 'Personal Email') ContactType.create!(name: 'FaceTime') ContactType.create!(name: 'Twitter') EOF
  • 33. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Datenbank-Migration $ rails db:drop $ rails db:create $ rails db:migrate $ rails db:seed $ $ git add . $ git commit -m "integrate ActiveAdmin"
  • 34. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Browser-Ansicht
  • 35. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Todo • Comments deaktivieren • permit_params in allen ActiveAdmin-Resources setzen • routes.rb: root to: redirect('/admin') • Addresses und Contacts aus Menü entfernen (menu false) • Model-Relations erweitern • ActiveAdmin-Ressourcen anpassen
  • 36. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch ActiveAdmin-Ressourcen anpassen # app/admin/address.rb ActiveAdmin.register Address do menu false permit_params :person_id, :type, :street, :street_addition, :city, :zip end # app/admin/contact_type.rb ActiveAdmin.register ContactType do permit_params :name end # app/admin/contact.rb ActiveAdmin.register Contact do menu false permit_params :person_id, :contact_type_id, :contact end # app/admin/group.rb ActiveAdmin.register Group do permit_params :name end
  • 37. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch ActiveAdmin-Ressourcen anpassen # app/admin/person.rb ActiveAdmin.register Person do permit_params :group_id, :title, :first_name, :last_name, :company, :job_title, :notes, contacts_attributes: [:id, :contact_type_id, :contact], addresses_attributes: [:id, :person_id, :mode, :street, :street_addition, :city, :zip] show do attributes_table_for person do Person.column_names.each do |c| row c.to_sym end end table_for person.contacts do column "Type", :contact_type column "Contact", :contact end table_for person.addresses do column "Mode", :mode column "Street", :street column "Addition", :street_addition column "City", :city column "Zip", :zip end end
  • 38. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch ActiveAdmin-Ressourcen anpassen form :html => {:multipart => true} do |f| f.inputs 'Person' do f.input :group f.input :title f.input :first_name f.input :last_name f.input :company f.input :job_title f.input :notes f.input :image, as: :file end f.inputs do f.has_many :contacts, allow_destroy: true do |c| c.input :contact_type c.input :contact end end
  • 39. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch ActiveAdmin-Ressourcen anpassen f.inputs do f.has_many :addresses, allow_destroy: true do |a| a.input :mode, :as => :select, :collection => [ ['Work','Work'], ['Personal','Personal'] ] a.input :street a.input :street_addition a.input :city a.input :zip end end f.actions end end
  • 40. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Model erweitern # app/model/person.rb class Person < ApplicationRecord belongs_to :group has_many :contacts has_many :addresses accepts_nested_attributes_for :contacts, reject_if: :all_blank, allow_destroy: true accepts_nested_attributes_for :addresses, reject_if: :all_blank, allow_destroy: true def name [title, first_name, last_name].join(" ").strip end end
  • 41. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Browser-Ansicht
  • 42. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Bild-Upload $ cat <<EOF >> Gemfile gem 'paperclip' EOF $ $ bundle $ rails generate paperclip person image $ $ # fix migration file $ sed -i '' -e "s#ActiveRecord::Migration#ActiveRecord::Migration[5.1]#g" db/migrate/*_add_attachment_image_to_people.rb $ $ rails db:migrate
  • 43. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Image-Referenz hinzufügen # app/admin/person.rb ActiveAdmin.register Person do permit_params :group_id, :title, :first_name, :last_name, :company, :job_title, :notes, :image, contacts_attributes: [:id, :contact_type_id, :contact], addresses_attributes: [:id, :person_id, :mode, :street, :street_addition, :city, :zip] # app/model/person.rb class Person < ApplicationRecord has_attached_file :image, styles: { medium: "300x300>", thumbnail: "100x100>" } validates_attachment_content_type :image, :content_type => [ "image/jpg", "image/jpeg", "image/png", "image/gif" ]
  • 44. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Browser-Ansicht
  • 45. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch ?
  • 46. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Links zum Vortrag • https://speakerdeck.com/qutic • https://de.wikipedia.org/wiki/Webframework • http://rubyonrails.org • https://www.ruby-lang.org/en/ • https://rvm.io • https://stackoverflow.com/questions/15691977/why-start-a-shell-command- with-a-backslash • http://bundler.io • https://gorails.com/setup/windows/10 • http://macromates.com/download • https://activeadmin.info • https://activeadmin.info/documentation.html
  • 47. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Open Source - eine FileMaker Alternative? | Stefan Husch Weiter lernen • https://github.com/activeadmin/activeadmin/wiki • https://gorails.com/episodes/using-activeadmin-to-build-an-admin-ui • https://spin.atomicobject.com/2016/07/23/file-upload-active-admin-paperclip/ • https://pragprog.com/book/ruby4/programming-ruby-1-9-2-0 • https://pragprog.com/book/rails51/agile-web-development-with-rails-5-1 • http://railscasts.com
  • 48. 8. FileMaker Konferenz | Salzburg | 12.-14. Oktober 2017 Vortrag und Sprecher Vielen Dank unseren Sponsoren