Ruby on rails 删除utf8=&x2713;从数据库
我有一个直接从数据库返回信息的API,注意到Rails正在存储一个utf8复选标记和真实性令牌。保存前删除此文件的最佳方法是什么Ruby on rails 删除utf8=&x2713;从数据库,ruby-on-rails,ruby,forms,mongoid,Ruby On Rails,Ruby,Forms,Mongoid,我有一个直接从数据库返回信息的API,注意到Rails正在存储一个utf8复选标记和真实性令牌。保存前删除此文件的最佳方法是什么 {"achievements":[{"utf8":"✓","authenticity_token":"XDzrmNqNyt6OfhWpAzu3j7LhMd/sRcr/4oLsPxRMrDY=","achievement":"Big Guns",... 控制器代码示例: def achievements if params.include?(:ach) @
{"achievements":[{"utf8":"✓","authenticity_token":"XDzrmNqNyt6OfhWpAzu3j7LhMd/sRcr/4oLsPxRMrDY=","achievement":"Big Guns",...
控制器代码示例:
def achievements
if params.include?(:ach)
@achievement = Achievement.new(params[:ach])
if @achievement.save
redirect_to action: :achievements and return
end
end
end
视图示例:
<%= form_tag '', multipart: true do %>
<div class="four columns">Name <input name="ach[achievement]" type="text" ></div>
<div class="five columns">Description <input name="ach[description]" type="text" ></div>
<% end %>
名称
描述
我不想写一篇长篇大论,我只想指出三件事,它们会让你朝着正确的方向前进。如果令人困惑,请发表评论,我将进一步解释:
utf8=✓当您在Rails中使用表单帮助程序时,会将代码>插入到HTML中
params
对象交给您的模型achievement_params = %w[achievement description]
@achievement = Achievement.new(params.select { |key,_| achievement_params.include? key })
您可以通过在hash类中的
reject
方法中使用从params散列中删除密钥对
例如:
hash.reject! {|k,_| k.to_s.eql?("utf8") || k.to_s.eql?("authenticity_token") }
感谢您的回答,所以在保存时,我应该输入每个单独的参数,或者是否有方法检查没有保存额外的内容?我很困惑,因为模型中没有Authentity\u token字段。@Eddie我不知道您的代码在做什么,因为您没有在此处共享它。要控制传递给模型的内容:以及关于
authenticity\u token
的问题,请参阅:我添加了一些示例代码,但通过您的回答,您似乎已经理解了我在做什么。这个mongoid
标记解释了很多问题我还没有测试过这一点,但它可能是一种更好的方法,可以做同样的事情:accurrence=accurrence.new accurrence.attributes=params