脚手架描述不显示任何文字

时间:2013-11-11 11:20:07

标签: ruby-on-rails scaffolding

我跑了

rails g scaffold Freqs description:string --skip-stylesheets

并迁移我的数据库并重新启动服务器。

当我在我的应用程序中创建一个新的Freq时,它已成功创建,但没有任何文本我在描述框中键入。

我已经检查了Freq模型中的代码,并且确实正在推出描述。由于某种原因,它只是没有显示。

知道为什么会这样吗?如果需要,请索取具体代码。

以下是与Freqs对应的show.html.erb视图:

<p id="notice"><%= notice %></p>

<p>
  <strong>Description:</strong>
  <%= @freq.description %>
</p>

<%= link_to 'Edit', edit_freq_path(@freq) %> |
<%= link_to 'Back', freqs_path %>

问题在于控制器。以下是我尝试保存说明时收到的错误:

警告:无法为Freq:description大量分配受保护的属性     app / controllers / freqs_controller.rb:27:在'create'

这是第27行:

@freq = Freq.new(freq_params)

我通过添加

解决了这个问题
attr_accessible :description

到Freq模型。

1 个答案:

答案 0 :(得分:1)

在Rails 4中,参数验证已从模型中删除,现在存在于Controller中。所以,&#34; attr_accessible&#34;线不再用于模型中。

从控制器提供的行中,控制器中有一个freq_params函数,应该是这样的:

# Never trust parameters from the scary internet, only allow the white list through.
def freq_params
  params.require(:freq).permit(:description)
end

如果不是,请将其更改为此,并从Freq模型中删除attr_accessible行。