Ruby / Rails app不能保存,也不会出错

时间:2017-07-01 15:23:21

标签: ruby-on-rails ruby heroku

一位Ruby回归者试图在没有触及它一段时间后制作应用程序。所以我我记得错误驱动的开发过程非常好。我的应用程序大部分工作,使用表单部分来容纳我的编辑和新逻辑。

我来回使用传统资源:我的控制器中的事实,以及逐字拼写所有路线。这种行为仍然存在,所以我认为不是这样。

我已经搜索了Stack溢出,并且还从我在Heroku上托管的其他两个WORKING ruby​​应用程序返回了语法,我没有看到语法差异。不过我必须这样做,因为路线是问题所在。

对不起,如果我做的事情那么明显,但已经有一段时间了。在过去的几个周末,我每个周末一直都在研究这个问题,而且我已经陷入了挫折,想要完成这个bug并得到照顾。

jtkaufman737/raleigh_newcomer

<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>

enter image description here

2 个答案:

答案 0 :(得分:1)

您不需要在htmlbody代码之间包含所有观看次数,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您定义的titletext fact中,body的属性为categorysourcedef 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结构也存在问题(一些不匹配的divbuttoncenter标记。)

以下是您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 %>