首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用相同的操作在Rails中处理和接收表单

使用相同的操作在Rails中处理和接收表单
EN

Stack Overflow用户
提问于 2012-02-03 23:49:10
回答 1查看 42关注 0票数 0

我有这样的动作:

代码语言:javascript
运行
复制
def add_credit_card
    if request.post?
      unless params[:conditions]
        flash[:error] = 'You need to accept!'
      end
    end
end

此操作呈现以下视图:

代码语言:javascript
运行
复制
<%= form_tag do %>
  <fieldset>
      <%= check_box_tag "conditions"%> I agree to the <%= link_to "Terms and Conditions", consumer_terms_and_conditions_url, :target => "_blank" %>
  </fieldset>
  <%= submit_tag "Submit" %>
<% end %>

当我完成该操作时,不会显示错误。当我使用那个复选框提交时,没有显示错误。当我执行第一次提交而不选中该框时,会显示错误,但当我执行另一次提交而不选中复选框时,错误仍然存在。

我的问题是:

为什么happening?

  • What将是一种更好的方法来处理这种情况,即表单不附在模型上,而错误必须在用户提交表单时显示?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-04 00:18:02

因为您使用的是相同的操作,所以您需要使用flash.now,这样闪存哈希就不会持续到下一个操作。

代码语言:javascript
运行
复制
 flash.now[:error] = 'You need to accept!'

而且,这并不是必要的,但请考虑使用:

代码语言:javascript
运行
复制
 <%= check_box_tag 'conditions', 'accepted' %>

然后检查参数的值:字符串“接受”的条件,即:

代码语言:javascript
运行
复制
 unless params[:conditions]=='accepted'
   flash.now[:error] = 'You need to accept!'
 end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9137015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档