【问题标题】:Ruby On Rails: Active Recode method Save is undefined when called in Link Controller,Ruby On Rails:在链接控制器中调用 Active Recode 方法 Save 时未定义,
【发布时间】:2012-09-10 15:15:36
【问题描述】:

我正在开发一个 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

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

【问题讨论】:

    标签: activerecord methods ruby-on-rails-3.1 save undefined


    【解决方案1】:
      @link = Link.new(params[:link])
      respond_to do |format|
        if @product.save
    

    那么@product来自哪里?

    【讨论】:

    • 我从产品控制器复制并粘贴了它,忘记将其切换为@link。我真是个菜鸟。无论如何,谢谢。
    猜你喜欢
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多