我的表单在Profile
型号上看起来如此:
<%= form_for @profile do |f| %>
<div class="form-group">
<%= f.label :email, "Email" %>
<%= f.text_field :email, class: "form-control" %>
<%= f.label :tag_list, "HELLO!" %>
<%= f.text_field :tag_list %>
</div>
<%= f.submit "Submit", class: "btn btn-success" %>
<%end%>
我有一个Tag
模型,我想将标签应用到。
我的getter / setter函数:
def tag_list
Rails.logger.error "names"
tags.map(&:tag_name).join(", ")
end
def tag_list=(names)
self.tags = names.split(",").map do |n|
Rails.logger.error "names"
self.tags.where(tag_name: n.strip).first_or_create!
end
end
我的控制员:
def update
redirect_to profile_path(params[:id])
end
def edit
end
它不会保存该配置文件的标签,也不会在日志文件中看到我的日志。
答案 0 :(得分:1)
更新操作目前只执行重定向,因此@profile
保持不变。在您调用@profile.update_attributes(params[:profile])
或类似方法之前,不会运行setter方法。