Ruby/Rails/Model

Материал из Wiki.crossplatform.ru

Перейти к: навигация, поиск

Initialize Data in an HTML Control

File: controllers\hello_controller.rb
class HelloController < ApplicationController
  def there
    @data_hash = params[:cruncher]
    @cruncher = Cruncher.new(@data_hash[:crunch])
    @data = @cruncher.crunch
  end
  def input
        @cruncher = Cruncher.new("AAA")
  end
end
File: app\models\cruncher.rb
class Cruncher
  attr_reader :crunch
  attr_writer :crunch
  def initialize(data)
    @crunch = data
  end
end
File: app\views\hello\input.rhtml
<html>
  <head>
    <title>Using Text Fields</title>
  </head>
  <body>
    <h1>Working With Text Fields</h1>
    This Ruby on Rails application lets you read data from text fields.
    <br>
    <%= form_tag ({:action => "there"}, {:method => "post"}) %>
      Please enter your name.
      <br>
      <%= text_field ("cruncher", "crunch", {"size" => 30}) %>
      <br>
      <br>
      <input type="submit"/>
    <%= form_tag %>
  </body>
</html>
File: app\views\hello\there.rhtml
<html>
  <head>
    <title>Using HTML Control Shortcuts</title>
  </head>
  <body>
    <h1>Using HTML Control Shortcuts</h1>
    This application uses Rails HTML control shortcuts.
    <br>
    <br>
    Your name is <%= @data %>.
    <br>
    <br>
  </body>
</html>
 
Start the WEBrick server: ruby script/server
http://localhost:3000/hello/input


<A href="http://www.crossplatform.ru/Code/RubyDownload/initializeDataHTMLControl.zip">initializeDataHTMLControl.zip( 93 k)</a>


Tie a Text Field to a Model

File: controllers\hello_controller.rb
class HelloController < ApplicationController
  def there
    @data_hash = params[:cruncher]
    @cruncher = Cruncher.new(@data_hash[:crunch])
    @data = @cruncher.crunch
  end
  def input
  end
end
File: app\models\cruncher.rb
class Cruncher
  attr_reader :crunch
  attr_writer :crunch
  def initialize(data)
    @crunch = data
  end
end
File: app\views\hello\input.rhtml
<html>
  <head>
    <title>Using Text Fields</title>
  </head>
  <body>
    <h1>Working With Text Fields</h1>
    This Ruby on Rails application lets you read data from text fields.
    <br>
    <%= form_tag ({:action => "there"}, {:method => "post"}) %>
      Please enter your name.
      <br>
      <%= text_field ("cruncher", "crunch", {"size" => 30}) %>
      <br>
      <br>
      <input type="submit"/>
    <%= form_tag %>
  </body>
</html>
File: app\views\hello\there.rhtml
<html>
  <head>
    <title>Using HTML Control Shortcuts</title>
  </head>
  <body>
    <h1>Using HTML Control Shortcuts</h1>
    This application uses Rails HTML control shortcuts.
    <br>
    <br>
    Your name is <%= @data %>.
    <br>
    <br>
  </body>
</html>
 
Start the WEBrick server: ruby script/server
http://localhost:3000/hello/input


<A href="http://www.crossplatform.ru/Code/RubyDownload/tieTextFieldModel.zip">tieTextFieldModel.zip( 92 k)</a>


Working with Models

File: app\models\cruncher.rb
class Cruncher
  def crunch
    return 5
  end
end
File: app\controllers\hello_controller.rb
class HelloController < ApplicationController
  def there
    @cruncher = Cruncher.new
    @data = @cruncher.crunch
  end
end
File: app\views\hello\there.rhtml:
<html>
  <head>
    <title>Using Models</title>
  </head>
  <body>
    <h1>Working With Models</h1>
    This application fetches data from a model.
    <br>
    <br>
    The fetched data is: <%= @data %>.
    <br>
    <br>
  </body>
</html>
 
Start the WEBrick server: ruby script/server
Navigate to http://localhost:3000/hello/there


<A href="http://www.crossplatform.ru/Code/RubyDownload/workWithModel.zip">workWithModel.zip( 90 k)</a>