2017-11-02 2 views
1

私はRailsプロジェクトのLinesでブログエンジンを使用しています。ブログ投稿はLinesArticleというテーブルに含まれています。新しい列をテーブルに移動してRailsでフォームを更新しましたが、更新に失敗しました

私はペイウォールの背後にある特定の投稿を非表示にするには、カスタム属性を追加したいので、私は、次の移行を実行し、正常に掻き集め:

class AddPaywallToLinesArticles < ActiveRecord::Migration 
    def change 
    add_column :lines_articles, :paywall, :string 
    end 
end 

この表に追加された各ブログの記事がでフォームを使用して投稿されますUIは私のビュー/ Lines/articlesフォルダに含まれています。私は新しいtext_fieldを追加しました(ユーザーはyesまたはnoを書いていますが、私はこれをブール値で行うことができますが、それをテストするために文字列を使いたいと思いました)。

<div class="input-field checkbox"> 
<%= f.label :paywall %><br> 
<%= f.text_area :paywall%> 

形態は現在の負荷とtext_areaを示す図です。ただし、フォームを送信するとテキストは保存されません。 。私はテーブルの最後のレコードを確認した場合の出力例は:

<LinesArticle id: 5, title: "Test 2 with False", teaser: nil, insider: nil, paywall: nil> 

のでpaywall列には、私はそれがフォームの問題ではないと思う私が入力していた文字列を更新していない - 私は疑問に思って実際の問題はpermits:のようなものを設定する必要があるということです。このブログエンジンにはコントローラが関連付けられていません。

アイデア?

+1

はすでにhttp://guides.rubyonrails.org/action_controller_overview.html#strong-parametersをチェックしましたか? – wiesion

+0

'LinesArticle'をdbに保存するためのコントローラアクションコードを置くことができますか? – Cyzanfar

答えて

1

あなたの問題は、あなたのコントローラーで欠落している強力なパラメータに最も可能性が高いです。

def create 
... 
@lineArticle = LinesArticle.create(line_article_params) 
... 
end 

private 

def line_article_params 
    params.require(:line_article).permit(:title, :teaser, :insider, :paywall) 
end 
関連する問題