在我看来,我有
<%= form_for(@post) do |f| %>
<%= f.text_field :name %>
<%= f.text_field :tag_list %>
<%= f.submit %>
<% end %>
其中tag_list是虚拟属性。
class Post < ActiveRecord::Base
def tag_list
#Virtual attribute stuff
end
def tag_list=(value)
#Virtual attribute stuff
end
end
问题是,当用户提交表单但未通过验证时,表单不记得tag_list字段的输入。它只记住名称字段的输入。如何让表单记住tag_list的输入?
答案 0 :(得分:1)
在控制器操作中获取表单参数时,将其保存在会话中。
示例:强>
def new @post = Post.new @tag_list = session[:tag_list] end session[:tag_list]= params[post][tag_list] @post = params[post] if @post.save ... else ... end
现在在您的表单中,使用@tag_list填充tag_list
<%=f.text_field, :tag_list, @tag_list%>