博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

sislcb

寻找自己
sislcb.cublog.cn
Ruby On Rails入门经典 第五章 构建简单的Rails应用程序
从文本字段读取数据
输入视图:
<form action = "\look\at">
...
  <input type="text" name="text1">
...
</form>
动作:
def at
  @date = params[:text1]
end
输出视图:
<br>
 Your Name is <% = @date %>
</br>

从复选框读取数据
输入视图:
<form action = "\look\at">
..
  <input type="checkbox" name="check1">
..
</form>
动作:
def at
  @date = params[:check1]
end
输出视图:
    <br>
    <% if @data %>
    You clicked yes.
    <% else %>
    You did not click yes.
    <% end %>
    <br>

从单选按钮中读取数据
输入视图:
<form action="\look\at">
...
  <input type="radio" name="radio1" value="red">red
  <input type="radio" name="radio1" value="blue">blue
  <input type="radio" name="radio1" value="green">green
...
</fomr>
动作:
  def at
    @data = params[:radios1]
  end
输出视图:
    <br>
    You selected <%= @data %>.
    <br>

从选择框读取数据
输入视图:
    <form action = "\look\at">
      Select your new car's color.
      <br>
      <select name="select1" >
        <option value="red">red
        <option value="green">green
        <option value="blue">blue
      </select>
      <br>
      <br>
      <input type="submit"/>
    </form>
动作:
  def at
    @data = params[:select1]
  end
输出视图:
<br>
 Your Select <% = @date %>
</br>
 
从选择框读取多个选择
输入视图:
    <form action = "\look\at">
      Select your new car's color.
      <br>
      <select name="select1[]" multiple size="3">
        <option value="red">red
        <option value="green">green
        <option value="blue">blue
      </select>
      <br>
      <br>
      <input type="submit"/>
    </form>
动作相同
输出视图:
    <br>
    You selected <% for data in @data %>
    <%= data %>
    <% end %>
    <br>

Rails中使用HTML的快捷方法
输入视图:
    <%= start_form_tag ({:action => "at"}, {:method => "post"}) %>
      Please enter your name.
      <br>
      <%= text_field_tag ("text1", "", {"size" => 30}) %>
      <br>
      <br>
      <input type="submit"/>
    <%= end_form_tag %>
动作:
  def at
    @data = params[:text1]
  end
  def input
  end
新增加了一个input方法,所以上面的视图是保存在以.rhtml结尾的文件中
输出视图:
    <br>
    Your name is <%= @data %>.
    <br>
给start_form_tag 方法传递了一个指定动作的散列表,以及一个可选的散列表选项--有两个选项:"method"可以是"get"或"post", ":multipart"可以是"true"或"false"
使用text_field_tag 方法创建文本字段,需要将文本字段的名称,在文本字段中显示的初始文本以及一个可选的用于设置标准HTML选项--:disable,:maxsize或:size--的散列表传递给这个方法
创建复选框用check_box_tag方法,创建单选按钮使用radio_button_tag方法。
创建check_box:
    <%= start_form_tag ({:action => "at"}, {:method => "post"}) %>
      Would you like a raise?
      <br>
      <br>
      <%= check_box_tag ("check1", "Yes", false) %>Yes
      <br>
      <br>
      <input type="submit"/>
    <%= end_form_tag %>
创建select:
    <%= start_form_tag ({:action => "at"}, {:method => "post"}) %>
      Select your new car's color.
      <br>
      <br>
      <%= select_tag ("select1[]", "<option value='red'>red<option value='green'>green<option
value='blue'>blue", {:multiple => true}) %>
      <br>
      <br>
      <input type="submit"/>
    <%= end_form_tag %>
 
使用模型:
只需要在应用程序的module目录下放置一个.rb文件就能创建模型。
使用模型:在动作中创建一个模型的对象,使用这个对象的方法。
模型的代码:
class Cruncher
  def crunch
    return 5
  end
end
使用模型:
  def at
    @cruncher = Cruncher.new
    @data = @cruncher.crunch
  end

绑定控件和模型
rails支持一系列方法--text_field,select,check_box,可以使用这些方法直接将HTML控件连接到模型。
text_field(object_name, method, {...})
object_name是模型对象的名字,method是需要与之绑定的控件的数据访问器名称,{...}是一个包含有这个文本字段的HTML设置的散列表,如{"size" => 30}
模型:
class Cruncher
  attr_reader :crunch
  attr_writer :crunch
  def initialize(data)
    @crunch = data
  end
end
动作:
  def at
    @data_hash = params[:cruncher]
    @cruncher = Cruncher.new(@data_hash[:crunch])
    @data = @cruncher.crunch
  end
  def input
  end
输入视图:
    <%= start_form_tag ({:action => "at"}, {:method => "post"}) %>
      Please enter your name.
      <br>
      <%= text_field ("cruncher", "crunch", {"size" => 30}) %>
      <br>
      <br>
      <input type="submit"/>
    <%= end_form_tag %>
输出视图:
    <br>
    Your name is <%= @data %>.
    <br>
在视图中使用cruncher对象将文本字符中的数据绑定到这个crunch属性。
文本字符中的数据会在以:cruncher为参数的散列表中传回。
初始化控件中的数据
只需要在动作中,修改input动作:
  def input
    @cuncher = Cruncher.crunch
  end

存储会话中的数据
  session[:data] = @data

发表于: 2007-11-17,修改于: 2007-11-17 22:58,已浏览747次,有评论0条 推荐 投诉

给我留言
版权所有 ChinaUnix.net 页面生成时间:0.04253