0

我想知道如何创建与模型无关的字段,我需要该字段的唯一原因是确定要对其执行哪些操作。

假设我有一篇模型文章,并且在创建新文章时,我想要一个隐藏字段,该字段将具有 0,1,2,在新控制器中,我会查看参数是否等于 0,然后执行此设置的逻辑或 1 那么这组逻辑。

谢谢,我也知道为每个动作定义一组动作是行不通的。

4

3 回答 3

2

在表单中,您可以声明与模型不直接关联的隐藏和可见字段。当您提交表单时,您可以在表单的操作中操作params与模型无关的属性。

当您声明表单字段时,您可以使用以_taglike email_field_tagradio_button_tag和关于您的问题 、结尾的字段hidden_field_tag。例子:

<% hidden_field_tag 'this_is_hidden' %>

试一试并检查动作中的内容:raise params.inspect. 在这样做时,您会注意到paramsnow 包含您声明的与您的模型无关的属性的键(如属性:this_is_hidden

于 2013-03-16T18:21:13.167 回答
1

尝试使用 hidden_​​field_tag 进行操作。(建议:将其放在表单标签内的提交按钮之前。)

http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-hidden_​​field_tag

hidden_field_tag 'decide', '0'

然后在控制器的新动作中,您可以在 params 哈希中捕获它,并将其与 params[:decide].to_i 进行比较

于 2013-03-16T18:13:51.890 回答
0

最简单的方法是有一个隐藏字段作为@Zippie,提到。但是它有一些风险,因为最终用户可以修改隐藏字段中的值,并且您的程序可能会有不同的行为。

我个人认为有某种方法可以从传递的参数中识别

Ex: if it is a new object then it should go to method A etc... 

通过这种方式,最终用户将没有机会修改工作流程。

于 2013-03-16T18:38:16.920 回答