看agile web development with rails遇到困难,请帮助

在show.rhtml,
<% for column in Message.content_columns %>
<p>
 <b><%= column.human_name %>:</b> <%=h @message.send(column.name) %>
</p>
<% end %>

<%= link_to 'Edit', :action => 'edit', :id => @message %> |
<%= link_to 'Back', :action => 'list' %>

==
那么这个 :id => @message %>
是什么意思呢?
这个 :id => @message 是 :id => @message.id 的简写。
在这里的意思就是在连接里包含id=message.id。
哦.
还有
def update
  @message = Message.find(params[:id])
  if @message.update_attributes(params[:message])
  flash[:notice] = 'Message was successfully updated.'
  redirect_to :action => 'show', :id => @message
  else
  render :action => 'edit'
  end
 end
==
if @message.update_attributes(params[:message])
这里是更改
@message = Message.find(params[:id]) 中的@message属性是么?
为什么params[:message]而不是params[: @message]呢?
你应该去看看Rails的命名规则。呵呵。

前面带有“:”的是符号,带有“@”的是实例变量,带有“@@”是类变量。
所以你说的:@message不是合法的变量命名。

这段话的意思是说先用ID去找到对应的Message,然后用表单里对应的属性去更新@message这个变量。
看过变量名,只是
: “名叫XXX的符号“
始终不习惯......
很多情况下,符号和字符串是可以互换的。

例如:link_to :action => :list 和 link_to :action => 'list' 是一样的结果。

[Copy to clipboard] [ - ]
这个params[:message]又是什么意思?
params的意思同上,是从客户端的浏览器里回传的参数列表,为Hash类型。不同于以上的是:Message这个符号代表的是一个Hash。因为在_form.rhtml里我们都是使用<%= text_field "Message", "name" %>这种方式来生成HTML的。所以Message上传回来的值对应于一个散列
这个还是不清楚,我能够理解params中参数可以是一个字段(如ID) 但是message在这里传入的是什么的东西?是不是如果一个页面由用户输入 所有的用户输入的都传回来?
但是又在哪里声明这个message,还是这个message就是一个MODLE 所有的都可以自动找到?
看了ActiveRecord这章 越看越糊涂
什么时候该把方法定义到MODEL中 什么时候在定义到控制器中?如果是操作数据库的操作都放在MODEL中,那么就和前面的例子冲突了 .save,find等全是ActiveRecord的方法 但是写在了控制器中
很混乱。。。
引用:
原帖由 xnine 于 2007-7-25 23:15 发表
看了ActiveRecord这章 越看越糊涂
什么时候该把方法定义到MODEL中 什么时候在定义到控制器中?如果是操作数据库的操作都放在MODEL中,那么就和前面的例子冲突了 .save,find等全是ActiveRecord的方法 但是写在 ...
引用:
原帖由 xnine 于 2007-7-25 23:15 发表
看了ActiveRecord这章 越看越糊涂
什么时候该把方法定义到MODEL中 什么时候在定义到控制器中?如果是操作数据库的操作都放在MODEL中,那么就和前面的例子冲突了 .save,find等全是ActiveRecord的方法 但是写在 ...