2017-07-01 6 views
1

しばらくの間アプリに触れていないRubyリターンの人です。だから私はと思う私はエラー駆動開発プロセスを覚えています。私はほとんどの部分で私のアプリケーションを編集し、新しいロジックを収容する部分的なフォームを使用して仕事を持っている。Ruby/Railsアプリも保存しません。エラーもありません

私は従来のリソースを使用して前後に行っています:私のコントローラ内の事実、すべてのルートを逐語的に記入してください。行動は持続するので、私はそうではないと思っています。

私はスタックオーバーフローを罠にかけてしまいました。また、Herokuでホストされている他の2つのWORKING Rubyアプリケーションから構文に戻ってきました。構文の不一致は見られません。それはルートが問題だったので、それは私が推測しているが、持っている必要があります。

申し訳ありませんが、私は何か非常に明白なことをしていますが、しばらくしています。私は過去数週間の週末に毎週このことに取り組んできました。私はこのバグを抱えて世話をしたいという欲求不満の点に迫っています。

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

+0

あなたのページに2つのフォーム – uzaif

+0

'<フォームクラス= "defaultForm"> <%=のform_for @fact DO | | F%>があり'削除は、 form HTMLタグ – uzaif

答えて

1

あなたがhtmlbodyタグの間のすべてのビューをラップする必要はありません、それはあなたがそこJSおよびまたはCSSを定義することができ、ために使用されるものapplication.html.erbですあなたが使用する必要があるファイル。

f.submitを押したときにform_forを機能させるには、使用する「プレーンな」htmlフォームを削除してください。

あなたはfacts_controllerであなたの強いのparamsにcategoryを追加していない、とあなたがモデルにpresence: true検証を追加したとして、それは常にこの属性を求めてエラーがスローされます。それは、このような変数が存在しないというエラーがスローされますので@factは、@Factに異なっている、@factcreate方法で

あなたは @Factにリダイレクト保存されていますが、その変数が定義されていません。あなたの strong_paramsあなたが titletextを定義しましたが、 factの属性が bodycategorysourceあり、それはあなたが入力を埋める場合、それは問題ではありません、なぜ、あなたはそのデータを保存することができません年代に

許可されていないパラメータ:入力された、あなたがあります参照してくださいよボディ、元のRailsサーバーで

メッセージ、その方法は、次のようになります。

セバスティアン@から
def fact_params 
    params.require(:fact).permit(:category, :body, :source) 
end 
+0

このリポジトリ(https://bitbucket.org/hnhm/raleigh)をチェックして、その動作を確認してください。 –

+0

私はそれを逃したとは思わない。私は本当に錆びている。助けてくれてありがとう! –

1

などの追加情報は、あなたの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 %> 
関連する問題