0

我跑了

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

问题出在控制器内部。这是我尝试保存描述时收到的错误:

警告:无法为频率批量分配受保护的属性:描述 app/controllers/freqs_controller.rb:27:in `create'

这是在第 27 行:

@freq = Freq.new(freq_params)

我通过添加解决了这个问题

attr_accessible :description

到频率模型。

4

1 回答 1

1

在 Rails 4 中,参数验证从模型中移除,现在存在于控制器中。因此,模型中不再使用“attr_accessible”行。

从您从控制器提供的行中,您的控制器中有一个 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 行。

于 2013-11-11T14:07:28.800 回答