Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 找不到没有ID的控制器_Ruby On Rails_Ruby_Controller_Reddit - Fatal编程技术网

Ruby on rails 找不到没有ID的控制器

Ruby on rails 找不到没有ID的控制器,ruby-on-rails,ruby,controller,reddit,Ruby On Rails,Ruby,Controller,Reddit,我正试图通过Schneems在Rails上构建Reddit。我在提交一份新的文件时不断地遇到这个错误 ruby 1.9.3 Rails 4.2.0 我的链接控制器怎么了 class LinksController < ApplicationController def show @link = Link.find(params[:id]) end def new @link = Link.new end def create @link = Link.new(links_p

我正试图通过Schneems在Rails上构建Reddit。我在提交一份新的文件时不断地遇到这个错误

ruby 1.9.3

Rails 4.2.0

我的链接控制器怎么了

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
新的观点是:

<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中添加了强参数,但没有任何效果。

我在四天后终于修复了它!。 因此,链接控制器应如下所示:

def create
@link = Link.new(links_params)
if @link.save
  render('show')
else
  render('new')
end

因为在我转到localhost:3000/links/show页面之前,我需要localhost:3000/links/id

您应该使用:id param而不是:link param来查找您的记录,因为:link param不存在。这也不会改变任何内容@Аааааа安德鲁,您的数据库中有链接吗?你确定你的链接id是从表单中正确传入的吗?链接参数是否已填充?链接可以从rails控制台提交:$Link.create:url=>,:title=>stack。然后可以在控制台$Link.last.url=>$Link.last.title=>stack中访问。我不知道如何检查正确的身份证通过。。
def create
@link = Link.new(links_params)
if @link.save
  render('show')
else
  render('new')
end