1

我正在开发一个 Ruby On Rails 应用程序,当我尝试从 Active Record 调用 Save 方法以填充到数据库的新链接时,出现以下错误。这是出错的代码,它在我的 LinksController 类的 Create 方法中:

def create
  @link = Link.new(params[:link])
  respond_to do |format|
    if @product.save
      format.html { render :action => "create" }
      format.json { render :json => @link }
    else
      format.html { render :action => "new" }
      format.json { render :json => @product.errors, :status => :unprocessable_entity }
    end
  end
end

当我去

http://localhost:3000/links/new 

并尝试使用此表单创建一个新链接:

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

并单击提交,我收到以下错误:

undefined method `save' for nil:NilClass

我不知道发生了什么,所以如果有人有答案,甚至是指点,我将非常感激。谢谢。

4

1 回答 1

0
  @link = Link.new(params[:link])
  respond_to do |format|
    if @product.save

那么是@product从哪里来的呢?

于 2012-09-10T16:34:38.233 回答