【问题标题】:Create action - Rails创建动作 - Rails
【发布时间】:2014-08-05 19:51:18
【问题描述】:

当我尝试在控制台中输出强参数时,服务器没有响应,甚至没有错误。没有。并且创建操作不起作用。任何想法?我正在尝试提交的表单中使用茧。

谢谢,

def new
    @game = Game.new
    @level = @game.levels.build
end

def create

 @game = Game.new(game_params)

 puts @game

 if @game.save
   redirect_to @game, notice: 'Game was successfully created.'
 else
       render :new
    end
end

private

def game_params
  params.require(:game).permit(:name, :publisher, :year, :description, :image, levels_attributes: [:id, :name, :sort_order, :_destroy])
end

我的游戏课

class Game < ActiveRecord::Base
has_many :levels

accepts_nested_attributes_for :levels, :reject_if => :all_blank, :allow_destroy => true

mount_uploader :image, ImageUploader

end

【问题讨论】:

  • 您确定请求执行了create 操作吗?如果在方法的开头添加puts 'Hi' 会怎样?这会输出到控制台吗?
  • 除了@ChrisPeters 提出的问题,您能发布您的游戏课程吗?
  • @ChrisPeters 谢谢你们的帮助,伙计们。我注意到一些奇怪的事情。在我第一次加载我的表单时,提交不起作用,即使我只是在控制台上输入“嗨”。但是如果我重新加载页面,表单就没有问题了。但只有在重新加载之后。
  • Hrm...好吧,这并没有我希望的那么有用 xD。我刚刚想到,但表格在您的“新”页面上,对吗?听起来您的def new...end 命令搞砸了,或者您的新视图页面设置不正确。你也可以发布这些吗? (抱歉要了这么多东西xD)
  • @Micah,我当然可以。我非常感谢您的帮助。我要编辑上面的代码。

标签: ruby-on-rails ruby-on-rails-4 strong-parameters cocoon-gem


【解决方案1】:

如果您指的是实际的 rails 控制台,那么这些控制台当然不会显示在那里。

查看 http://guides.rubyonrails.org/debugging_rails_applications.html#the-logger,然后将您的 put 更改为更合适的内容,例如:

logger.warn("game: #{@game.inspect}")

【讨论】:

  • 同样的事情发生了。第一次加载表单时,提交按钮不起作用。只有刷新后。刷新后,一切正常。
  • 更新:当我通过 URL (localhost:3000/games/new) 访问时,表单运行良好。但是当我使用导航栏中的链接 () 时,就会出现问题。
【解决方案2】:

感谢您的所有帮助。答案是:turbolinks :-/ 我删除了 turbolinks,现在它工作得很好。

【讨论】:

    猜你喜欢
    • 2013-06-12
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多