我在我的Rails项目中使用名为Lines的博客引擎,博客帖子包含在名为LinesArticle
的表中。
我想添加一个自定义属性来隐藏付费专区后面的某些帖子,因此我运行了以下迁移并成功进行了调整:
class AddPaywallToLinesArticles < ActiveRecord::Migration
def change
add_column :lines_articles, :paywall, :string
end
end
添加到此表中的每篇博文都通过我的views / Lines / articles文件夹中包含的UI中的表单发布。我添加了一个新的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:
- 这个博客引擎虽然没有与之关联的Controller。
有什么想法吗?
答案 0 :(得分: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