Params w połączeniu z text_field

Witam

Na początek kawałek kodu:

Kontroler

class LookController < ApplicationController
def at
@data_hash = params[:cruncher]
@cruncher = Cruncher.new(@data_hash[:crunch])
@data = @cruncher.crunch
end
def input
end
end

Model:

class Cruncher
attr_reader :crunch
attr_writer :crunch
def initialize(data)
@crunch = data
end
end

Widok:

<%= form_tag({:action => "at"}, {:method => "post"}) %> Please enter your name.
<%= text_field("cruncher", "crunch", {"size" => 30}) %>

<%= form_tag %>

W drugim widoku (“at”) wyświetlam tylko zmienną @data.

  1. Nie do końca rozumiem kod:

    @data_hash = params[:cruncher]
    @cruncher = Cruncher.new(@data_hash[:crunch])

Nie mogę znaleźć informacji odnośnie metody params - czy zwraca ona tablicę? Dlaczego do konstruktora przekazujemy @data_hash[:crunch] ?

Za pomoc z góry dziękuję.

Pozdrawiam

params zwraca hash (niech mnie ktoś mądrzejszy poprawi, bo możliwe, że plotę bzdury :wink: )
ogólnie params to taki (mniej więcej) odpowiednik phpowego $_GET[] (o ile znasz php, to ta informacja może być przydatna) - ogólnie co jest przekazywane do paramsów odpowiada config/routes.rb
Polecam railscasts.com zwłaszcza odcinki na temat konsoli - dowiesz się jak tam sprawdzać co zwraca dana zmienna/metoda/whatever - ew. jeśli nie chcesz w konsoli, to w widoku możesz sobie wyświetlić przez <%= debug params %>