我要在这里切断一会儿,但要忍受我.
首先,我建议您使用RESTful路由,因为这使您可以访问一些Rails更好的方法和操作,例如能够:
form_for(@album) do |f|
并根据#new_record?
该对象的状态确定您想要去的地方.
其次,随着新form_for
的到位,您将能够通过以下方式干扰您的观点:
<%= f.text_field :title %>
代替:
<%= text_field :album, :title %>
最后解释为什么在Rails中使用@符号定义变量,也称为"实例变量":
当你定义在Rails的一个实例变量,它是可用的情况下为整个请求内里的"实例"是ActionController
和ActionView
那被调用来完成所有的渲染等等为你的方法链.其定义为一个实例变量将使它在你的控制器可用,则控制器定义后调用任何方法,你的助手,你的意见和谐音从您的控制器,助手或视图渲染.
基本上,它适用于整个请求,但在模型中无法访问.
其他变量规范是类变量(@@some_useful_thing = 1
)和全局变量($some_other_useful_thing = 1
)和常量(ALL_IN_UP_CASE = 1
).
我要在这里切断一会儿,但要忍受我.
首先,我建议您使用RESTful路由,因为这使您可以访问一些Rails更好的方法和操作,例如能够:
form_for(@album) do |f|
并根据#new_record?
该对象的状态确定您想要去的地方.
其次,随着新form_for
的到位,您将能够通过以下方式干扰您的观点:
<%= f.text_field :title %>
代替:
<%= text_field :album, :title %>
最后解释为什么在Rails中使用@符号定义变量,也称为"实例变量":
当你定义在Rails的一个实例变量,它是可用的情况下为整个请求内里的"实例"是ActionController
和ActionView
那被调用来完成所有的渲染等等为你的方法链.其定义为一个实例变量将使它在你的控制器可用,则控制器定义后调用任何方法,你的助手,你的意见和谐音从您的控制器,助手或视图渲染.
基本上,它适用于整个请求,但在模型中无法访问.
其他变量规范是类变量(@@some_useful_thing = 1
)和全局变量($some_other_useful_thing = 1
)和常量(ALL_IN_UP_CASE = 1
).
变量名前面的@符号表示当前类中的实例变量.:(冒号)前缀创建一个Symbol.在您的示例中,@album.id
将@album
实例变量的id发送到form_tag
,允许form_tag
从数据库中读取该对象,并使用该对象中的相应数据填充表单字段.您在text_field
方法中传递的符号form_tag
用于访问它从数据库创建的对象的特定属性.然后,它将这些属性的值放入它生成的文本字段中.