[英]undefined local variable or method `link_params'
我正在通过教程来制作Reddit模型。 在本地主机上时,我在新页面上(提交新链接),可以在其中提交标题和网址。
每当我提交信息时,我都会最终进入空白的创建视图。
本教程要求我们找到一种方法来填充数据库,并在显示视图中显示我们提交的信息,并在索引页面上提供我们新提交的信息。
这是我为此编辑控制器的尝试,但是我失败了:
class LinksController < ApplicationController
def index
@link = Link.all
end
def show
@link = Link.find(params[:id])
end
def new
@link = Link.new
end
def create
@link = Link.new(link_params)
if @link.save
redirect_to @link
else
render action: 'new'
end
end
end
我收到一条错误消息:
undefined local variable or method `link_params'
有关如何解决此问题的任何建议?
这是我的新观点:
这是新视图:
<%= form_for(@link) do |f| %>
<% if @link.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@link.errors.count, "error") %> prohibited this link from being saved:</h2>
<ul>
<% @link.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :url %><br />
<%= f.text_field :url %>
</div>
<div class="field">
<%= f.label :title %><br />
<%= f.text_field :title %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
我的表演视图当前为空,但保留了一些标题文本:
另外,如果有人对如何进一步改善我的控制器和视图也有一些建议,以取得理想的结果表示赞赏,我是新来的并尝试学习,谢谢。
您的控制器中需要一个link_params方法
def link_params
params.require(:link).permit(:url, :title)
end
当您从浏览器提交表单时,它将触发控制器操作。 该表格将提交一些需要处理的参数。 按照rails日志查看返回的内容,这是了解和调试事物的最佳简单方法。
在您的创建操作@link = Link.new(link_params)中,您正在使用link_params数据初始化Link对象,提交表单时检查哪个参数包含哈希。 解析该哈希以在Link类对象中传递数据。 从服务器日志中确认后,您需要定义link_params
或使用params [:link]之类的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.