相关疑难解决方法(0)

为什么Rails 4脚手架会创建json.jbuilder文件?

我已经生成了一个新的rails 4(rc1)项目,使用rails new并生成了一个脚手架rails g scaffold.

正如预期的那样,它创建了迁移,控制器和所有必需的视图文件.

它还创建了show.json.jbuilder和index.json.jbuilder.

我假设这是为了帮助模型生成json.控制器也包含format.json调用.

问题:为什么它需要json以及生成的应用程序的哪个部分使用json?它看起来不像(对我来说)视图使用json渲染任何东西,似乎它们在服务器端呈现(@model变量在视图中用于获取内容).

边缘指南(http://edgeguides.rubyonrails.org/)没有提到jbuilder以及为什么需要它.

提前致谢!如果我能澄清这个问题,请告诉我.

ruby-on-rails ruby-on-rails-4

32
推荐指数
4
解决办法
2万
查看次数

Ruby on Rails上"预期字符串默认值为..."的含义

最近我在Rails(5.0.0.1)上为Ruby(2.3.3)创建了一个应用程序:

$ rails _5.0.0.1_ new myapp --database=postgresql -T
Run Code Online (Sandbox Code Playgroud)

设置Gemfile并测试与我的数据库的连接后:

$ rails db:migrate
Run Code Online (Sandbox Code Playgroud)

我试图生成模型,但我收到了奇怪的消息:

$ rails g model Competition title:string
Expected string default value for '--test-framework'; got false (boolean)
Expected string default value for '--jbuilder'; got true (boolean)
Expected string default value for '--test-framework'; got false (boolean)
      invoke  active_record
      create    db/migrate/20161206021603_create_competitions.rb
      create    app/models/competition.rb
Run Code Online (Sandbox Code Playgroud)

这些消息的含义是什么?"预期的字符串默认值为......"

提前致谢.

更新:我的Gemfile

source 'https://rubygems.org'

ruby '2.3.3'

gem 'rails', '~> 5.0.0', '>= 5.0.0.1'
gem 'pg', '~> 0.18'
gem 'puma', '~> 3.0'
gem 'sass-rails', '~> 5.0' …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails rails-migrations

22
推荐指数
1
解决办法
1万
查看次数

在rails中跳过JSON格式生成脚手架

当您使用命令生成rails脚手架时,rails g scaffold Thing有任何方法可以避免令人讨厌

respond_to do |format|
  format.html # index.html.erb
  format.json { render json: @things }
end
Run Code Online (Sandbox Code Playgroud)

你控制器里的东西?

我正在尝试在Rails上教一个类,我想首先让它们生成一个脚手架,但是所有json格式化它都比它需要的要复杂得多.如果他们能够生成一个创建这样的控制器的脚手架,我会更高兴:

class ThingsController < ApplicationController

  def index
    @things = Thing.all
  end

  def show
    @thing = Thing.find(params[:id])
  end

  def new
    @thing = Thing.new
  end

  def edit
    @thing = Thing.find(params[:id])
  end

  def create
    @thing = Thing.new(params[:thing])
      if @thing.save
        redirect_to @thing, notice: 'Thing was successfully created.'
      else
        render: "new" 
      end
    end
  end

  def update
    @thing = Thing.find(params[:id])
      if @thing.update_attributes(params[:thing])
        redirect_to @thing, notice: 'Thing …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails scaffolding ruby-on-rails-3

16
推荐指数
2
解决办法
4723
查看次数