如何在创建帖子时访问参数

时间:2011-07-27 22:59:50

标签: ruby-on-rails checkbox boolean helper

意思是,在PostsController中,def create,我想访问列中传递的布尔值一致的值。创建帖子时,会有一个设置此值的复选框。 Checked使得同意为真(1)并且未经检查使得同意为假(0)。现在我有代码params[:post][:agree]以便访问此值,但这似乎不起作用。 当我尝试在if语句中使用它时,语句总是出现,就好像params [:post] [:agree]总是计算为true。

帮助!为什么这不起作用?

:编辑:

Post.rb(帖子模型)

 attr_accessor :agree
 attr_accessible :agree

PostController(在def创建中)

@post.title = "AGREED!!" if params[:post][:agree] == "1"

2 个答案:

答案 0 :(得分:3)

在Ruby中,数字0和字符串"0"在布尔上下文中都不会计算为false。试试if (params[:post][:agree]=="1")

答案 1 :(得分:1)

Rails默认创建一个复选框(带有value="1")和一个隐藏的输入元素(带value="0"),所以你总是得到一个传递回服务器的值,我个人认为是愚蠢并覆盖它。请尝试检查是否params[:post][:agree].blank?

我不完全确定我理解你的整个问题。您只是在谈论表单数据,还是在谈论您的模型?