【发布时间】:2015-01-21 14:53:59
【问题描述】:
我正在尝试通过 Schneems 在 Rails 上构建 Reddit。我在提交新的link 时不断收到此错误。
红宝石 1.9.3
Rails 4.2.0
我的 Links#Controller 出了什么问题?
class LinksController < ApplicationController
def show
@link = Link.find(params[:id])
end
def new
@link = Link.new
end
def create
@link = Link.new(links_params)
if @link.save
redirect_to(:action => 'show')
else
render('new')
end
end
private
def links_params
params.require(:link).permit(:title, :url)
end
end
代码应将我带到显示提交标题和网址的页面。但它给了我:
ActiveRecord::RecordNotFound in LinksController#show
Couldn't find Link without an ID
Rails.root: C:/Users/Andrew/Documents/reddit_on_rails
Application Trace | Framework Trace | Full Trace
app/controllers/links_controller.rb:4:in `show'
新视图是:
<h1>New link</h1>
<%= 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 :title %><br />
<%= f.text_field :title %>
</div>
<div class="field">
<%= f.label :url %><br />
<%= f.text_field :url %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
我已经在 bundler 中添加了强大的参数,但是什么也没做。
【问题讨论】:
-
您应该使用
:id参数而不是:link参数来查找您的记录,因为:link参数不存在。 -
这也不会改变任何东西
-
@АндрейВолков Andrew,您的数据库中有链接吗?您确定您的链接 ID 是从表单中正确传递的吗?
links_params是否已填充?
标签: ruby-on-rails ruby controller reddit