一位Ruby回归者试图在没有触及它一段时间后制作应用程序。所以我想我记得错误驱动的开发过程非常好。我的应用程序大部分工作,使用表单部分来容纳我的编辑和新逻辑。
我来回使用传统资源:我的控制器中的事实,以及逐字拼写所有路线。这种行为仍然存在,所以我认为不是这样。
我已经搜索了Stack溢出,并且还从我在Heroku上托管的其他两个WORKING ruby应用程序返回了语法,我没有看到语法差异。不过我必须这样做,因为路线是问题所在。
对不起,如果我做的事情那么明显,但已经有一段时间了。在过去的几个周末,我每个周末一直都在研究这个问题,而且我已经陷入了挫折,想要完成这个bug并得到照顾。
<DOCTYPE html>
<head>
<link rel='stylesheet' type="text/css" href='/application.scss'/>
<link href="https://fonts.googleapis.com/css?family=Space+Mono" rel="stylesheet">
</head>
<body id="formMain" style="width:50%; margin-top:5%; margin-bottom:5%;">
<form class="defaultForm">
<%= form_for @fact do |f|%>
<% if @fact.errors.any? %>
<div id="error_explanation">
<h2>
<%= pluralize(@fact.errors.count, "error") %> prohibited
this fact from being saved:
</h2>
<ul>
<% @fact.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="container"><br/>
<div class="column-right">
<%= f.label :category %>:<br/><br/>
<%= f.label :text %>:<br/><br/>
<%= f.label :source %>:<br/><br/>
</div>
<div class="column-left">
<%= f.text_field :category %><br/><br/>
<%= f.text_field :body%><br/><br/>
<%= f.text_field :source %><br/><br/>
</div>
</div><br/>
</form>
<button class="buttonStyle"><center>
<%= f.submit %><% end %>
<%= link_to 'Back', facts_path, :class => 'buttonStyle'%></button></center>
</body>
</html>
答案 0 :(得分:1)
您不需要在html
和body
代码之间包含所有观看次数,application.html.erb
用于form_for
,您可以在那里定义您需要使用的js和/或css文件。
为了在按下f.submit
时让category
工作,请删除&#34; plain&#34; html表单你用来包装它。
您还没有将facts_controller
添加到presence: true
中的强参数中,并且您已经在模型上添加了create
验证,然后&# 39; ll总是抛出一个错误,要求这个属性。
在保存@fact
后的@Fact
方法中,您重定向到@fact
,但该变量未定义,@Fact
与{{1}不同所以它会抛出一个错误,说这个变量不存在。
在strong_params
您定义的title
和text
fact
中,body
的属性为category
,source
和def fact_params
params.require(:fact).permit(:category, :body, :source)
end
,这就是为什么如果你填写输入并不重要,你将无法保存输入的数据,你会看到那里的&#39; sa :
Rails服务器中的未经许可的参数:正文,来源
消息,该方法可能如下所示:
function getProducts() {
User.getProducts().then(function(data){
app.products = data.data.products;
for(i = 0; i < data.data.products.length; i++)
app.description = data.data.products[i].description
console.log(data.data.products[0].description)
app.loading = false;
})
}
getProducts();
答案 1 :(得分:1)
作为来自@Sebastián的其他信息,您的form
结构也存在问题(一些不匹配的div
,button
和center
标记。)
以下是您form
:
<%= form_for @fact do |f|%>
<% if @fact.errors.any? %>
<div id="error_explanation">
<h2>
<%= pluralize(@fact.errors.count, "error") %> prohibited
this fact from being saved:
</h2>
<ul>
<% @fact.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="container">
<div class="column-right">
<%= f.label :category %>:<br/><br/>
<%= f.label :text %>:<br/><br/>
<%= f.label :source %>:<br/><br/>
</div>
<div class="column-left">
<%= f.text_field :category %><br/><br/>
<%= f.text_field :body%><br/><br/>
<%= f.text_field :source %><br/><br/>
</div>
</div>
<button class="buttonStyle">
<center>
<%= f.submit "Save", :class => 'btn btn-lg btn-primary', data: { disable_with: "Please wait..." } %>
<%= link_to 'Back', facts_path, :class => 'buttonStyle'%>
</center>
</button>
<% end %>