Archief - Ruby on Rails: GET & POST

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

AliChemicali

Legacy Member
Hello,

Ik zou graag een kleine form hebben die data door stuurt.

Mijn Controller
Code:
class WelcomeController < ApplicationController
  def index
    @hello_message = "Welcome to JRuby on Rails on the Sun GlassFish Enterprise Server"
    render :text => params[:post].inspect
  end
 
end

Mijn Routes
Code:
MyTest::Application.routes.draw do
  get "welcome/index"
  
  post "posts" => "welcome#index"

  # The priority is based upon order of creation:
  # first created -> highest priority.

  # Sample of regular route:
  #   match 'products/:id' => 'catalog#view'
  # Keep in mind you can assign values other than :controller and :action

  # Sample of named route:
  #   match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
  # This route can be invoked with purchase_url(:id => product.id)

  # Sample resource route (maps HTTP verbs to controller actions automatically):
  #   resources :products

  # Sample resource route with options:
  #   resources :products do
  #     member do
  #       get 'short'
  #       post 'toggle'
  #     end
  #
  #     collection do
  #       get 'sold'
  #     end
  #   end

  # Sample resource route with sub-resources:
  #   resources :products do
  #     resources :comments, :sales
  #     resource :seller
  #   end

  # Sample resource route with more complex sub-resources
  #   resources :products do
  #     resources :comments
  #     resources :sales do
  #       get 'recent', :on => :collection
  #     end
  #   end

  # Sample resource route within a namespace:
  #   namespace :admin do
  #     # Directs /admin/products/* to Admin::ProductsController
  #     # (app/controllers/admin/products_controller.rb)
  #     resources :products
  #   end

  # You can have the root of your site routed with "root"
  # just remember to delete public/index.html.
  root :to => 'welcome#index'

  # See how all your routes lay out with "rake routes"

  # This is a legacy wild controller route that's not recommended for RESTful applications.
  # Note: This route will make all actions in every controller accessible via GET requests.
  # match ':controller(/:action(/:id))(.:format)'
end


Mijn Index.html.erb
Code:
<h1> Hello Baby </h1>


<%= @hello_message %>

<%= form_for :post, :url => { :action => :index } do |f| %>
  <p>
    <%= f.label :title %><br>
    <%= f.text_field :title %>
  </p>
 
  <p>
    <%= f.label :text %><br>
    <%= f.text_area :text %>
  </p>
 
  <p>
    <%= f.submit %>
  </p>
<% end %>

Dus als ik dat run krijg ik het volgende:

TinyGrab - Simple. Screenshot. Sharing.

bealzebub

Legacy Member
Dat is ook normaal, er is danig veel fout met je MVC setup om te beginnen al, maar laat er ons even door gaan:

Op het einde van je controller action doe je "render :text". Dat zorgt ervoor dat er effectief gewoon tekst gerenderd wordt en niet je template. En wat render je? params[: post], die uiteraard bij een GET request nil zal zijn. Die params is eigenlijk gewoon een Hash van de ingegeven form values, nie meer dan da. Dat is nog GEEN post object.

Als je de normale rendering pipe met templates wil gebruiken, dan moet je die index.html.erb in /app/views/welcome/index.html.erb staan hebben. En dan gewoon die render lijn uit je controller weg, zodat de standaard rendering pipe afgewerkt wordt (i.e. parse en render index.html.erb).

Eigenlijk hoort het maken van een post niet thuis in de welcome controller, maar in de posts_controller als je REST correct wil gebruiken, maar laat ons dat gewoon effe terzijde houden.

Als je effectief een post wil laten maken in je welcome controller, moet je die ook effectief instantiëren:

Code:
class WelcomeController < ApplicationController
  def index
    @hello_message = "Welcome to JRuby on Rails on the Sun GlassFish Enterprise Server"
    @post = Post.new(params[:post])
  end
end

In je form_for ga je ook @post ipv : post moeten gebruiken volgens mij.

Je zou eigenlijk wel beter ergens een boek over Ruby on Rails (of serverside MVC web apps) opsnorren, ik weet wel dat het een snelle test is, maar met een opinionated framework ben je best van de opinionated weg te volgen ipv errond te werken.

Drone

Legacy Member
Als het alles is waarvoor je RoR gaat gebruiken is het misschien ook wat overkill. Misschien dat sinatra een betere oplossing is?

AliChemicali

Legacy Member
Ik ga toch een course volgen op het werk dus dan ga ik het goed leren :)

bealzebub

Legacy Member
Wow, een kleine Ruby community hier :-) Links van @Gamefactor zijn inderdaad een goeie start (en Railscasts is gewoon leuk om nieuwe gems te ontdekken eigenlijk ;-))

Drone

Legacy Member
bealzebub zei:
Wow, een kleine Ruby community hier :-) Links van @Gamefactor zijn inderdaad een goeie start (en Railscasts is gewoon leuk om nieuwe gems te ontdekken eigenlijk ;-))

Heb een tijdje pro account gehad op railscast is wel nice. Sommige van de technieken vertalen ook goed naar andere platformen. Zoals bijvoorbeeld zijn cast over login of password recovery. Is echt aan te raden.

Gamefactor

Legacy Member
Ja ben nu al 2 jaar bezig in Ruby On Rails en vooral de boeken van Pragmatic Bookshelf ( The Pragmatic Bookshelf ) over Ruby en Ruby On Rails hebben mij veel bijgebracht. Voor de laatste nieuwe weetjes is Railscasts inderdaad zeer handig.

Is Ruby On Rails aan een opmars bezig in België? Ik heb het gevoel van wel, wat denken jullie?

Iemand die soms naar Arrrrcamp gaat?

Drone

Legacy Member
Gamefactor zei:
Ja ben nu al 2 jaar bezig in Ruby On Rails en vooral de boeken van Pragmatic Bookshelf ( The Pragmatic Bookshelf ) over Ruby en Ruby On Rails hebben mij veel bijgebracht. Voor de laatste nieuwe weetjes is Railscasts inderdaad zeer handig.

Is Ruby On Rails aan een opmars bezig in België? Ik heb het gevoel van wel, wat denken jullie?

Iemand die soms naar Arrrrcamp gaat?

Heb het een tijdje gebruikt en RoR is zeker leuk om mee te werken. Heb ook een tijdje Django (python) gebruikt en dat was ook een positieve ervaring. De laatste 8 maand ben ik vooral nu met Express.js bezig. De reden is omdat het zo basic is tegenover rails of django. Alles is ook niet voorzien in Express.js dus soms moet je eens zelf een module schrijven en dat is als developer iets dat ik graag doe.

bealzebub

Legacy Member
Gamefactor zei:
Iemand die soms naar Arrrrcamp gaat?

Ik ga zoals elk jaar ja. Vanavond al frietjes gaan eten in de Zebrastraat, dan twee daagskes amusement, vooral als t weer Mojitotijd is zoals andere jaren :applause:

AliChemicali

Legacy Member
Ik snap Ruby.

Maar het hele Rails gebeuren is like whtf.


Heeft iemand een goede video tutorials in WINDOWS die mij de beginsels uitlegt en zo verder naar simpel formkes enzo....
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan