Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails-从记录中输入默认值_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails Rails-从记录中输入默认值

Ruby on rails Rails-从记录中输入默认值,ruby-on-rails,ruby,Ruby On Rails,Ruby,也许我有点傻,但几个小时以来,我一直在用RubyonRails为输入设置默认值,但一直没有破解它 我正在制作一个分部,它既可以允许用户创建新记录,也可以显示现有记录(如果存在)。代码如下 <input type="text" <%= (@prices.empty? || @prices.first.name.length == 0) ? 'placeholder="General admission"' : "value=" + @prices.first.name.to_s %&g

也许我有点傻,但几个小时以来,我一直在用RubyonRails为输入设置默认值,但一直没有破解它

我正在制作一个分部,它既可以允许用户创建新记录,也可以显示现有记录(如果存在)。代码如下

<input type="text" <%= (@prices.empty? || @prices.first.name.length == 0) ? 'placeholder="General admission"' : "value=" + @prices.first.name.to_s %> >

它适用于任何存在的值,除非有空格,例如,如果price.name=“general Acmission”或price.name=“”(在这种情况下,它会打印占位符),我得到以下结果

<input type="text" admission&#39;="" value="'general" id="event_price_name" name="[event][price][0][name]" aria-label="..." class="form-control">

它似乎被太空绊倒了

我是否试图以一种非设计的方式使用Rails?我更习惯于PHP,可能就是它


谢谢

您应该使用文本\u字段\u标记帮助器来构建输入,这比使用部分插值构建输入更可取。此外,如果存在值,占位符将自动被覆盖,这样您就不需要在代码中处理该部分,这就是它在浏览器上默认的行为方式

<%= text_field_tag :admission, @prices.first.name.to_s, {placeholder: 'General Admission'} %>

此外,如果需要默认值,通常在控制器中设置。您的输入字段通常基于数据库中的列(或“模型上的属性”(如果愿意),因此您可以实例化一个对象并为其提供一些默认值。主要的收获是:不能用Ruby或RoR编写PHP风格的代码。这是行不通的。我给你的建议是我给你这个位置上的每个人的建议:停下来——真的停下来——从头读到尾。你可以在几天内完成,但你会在一周内提前完成。