Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
cb025f85
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
cb025f85
编写于
12月 22, 2012
作者:
Y
Yehuda Katz
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add --no-html to scaffold generator
上级
7173c4f9
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
54 addition
and
8 deletion
+54
-8
railties/lib/rails/generators/rails/scaffold/scaffold_generator.rb
...lib/rails/generators/rails/scaffold/scaffold_generator.rb
+12
-1
railties/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb
...ails/scaffold_controller/scaffold_controller_generator.rb
+9
-0
railties/lib/rails/generators/rails/scaffold_controller/templates/controller.rb
...erators/rails/scaffold_controller/templates/controller.rb
+16
-7
railties/test/generators/scaffold_controller_generator_test.rb
...ies/test/generators/scaffold_controller_generator_test.rb
+12
-0
railties/test/generators/scaffold_generator_test.rb
railties/test/generators/scaffold_generator_test.rb
+5
-0
未找到文件。
railties/lib/rails/generators/rails/scaffold/scaffold_generator.rb
浏览文件 @
cb025f85
...
...
@@ -9,6 +9,15 @@ class ScaffoldGenerator < ResourceGenerator # :nodoc:
class_option
:stylesheets
,
type: :boolean
,
desc:
"Generate Stylesheets"
class_option
:stylesheet_engine
,
desc:
"Engine for Stylesheets"
class_option
:html
,
type: :boolean
,
default:
true
,
desc:
"Generate a scaffold with HTML output"
def
handle_skip
if
!
options
[
:html
]
||
!
options
[
:stylesheets
]
@options
=
@options
.
merge
(
stylesheet_engine:
false
)
end
end
hook_for
:scaffold_controller
,
required:
true
hook_for
:assets
do
|
assets
|
...
...
@@ -16,7 +25,9 @@ class ScaffoldGenerator < ResourceGenerator # :nodoc:
end
hook_for
:stylesheet_engine
do
|
stylesheet_engine
|
invoke
stylesheet_engine
,
[
controller_name
]
if
options
[
:stylesheets
]
&&
behavior
==
:invoke
if
behavior
==
:invoke
invoke
stylesheet_engine
,
[
controller_name
]
end
end
end
end
...
...
railties/lib/rails/generators/rails/scaffold_controller/scaffold_controller_generator.rb
浏览文件 @
cb025f85
...
...
@@ -10,8 +10,17 @@ class ScaffoldControllerGenerator < NamedBase # :nodoc:
class_option
:orm
,
banner:
"NAME"
,
type: :string
,
required:
true
,
desc:
"ORM to generate the controller for"
class_option
:html
,
type: :boolean
,
default:
true
,
desc:
"Generate a scaffold with HTML output"
argument
:attributes
,
type: :array
,
default:
[],
banner:
"field:type field:type"
def
handle_skip
unless
options
[
:html
]
@options
=
@options
.
merge
(
template_engine:
false
,
helper:
false
)
end
end
def
create_controller_files
template
"controller.rb"
,
File
.
join
(
'app/controllers'
,
class_path
,
"
#{
controller_file_name
}
_controller.rb"
)
end
...
...
railties/lib/rails/generators/rails/scaffold_controller/templates/controller.rb
浏览文件 @
cb025f85
...
...
@@ -12,7 +12,7 @@ def index
@<%= plural_table_name %> = <%= orm_class.all(class_name) %>
respond_to do |format|
format.html # index.html.erb
<%- if options[:html] -%>format.html # index.html.erb<%- end -%>
format.json { render json: <%= "@
#{
plural_table_name
}
" %> }
end
end
...
...
@@ -21,11 +21,12 @@ def index
# GET <%= route_url %>/1.json
def
show
respond_to
do
|
format
|
format
.
html
# show.html.erb
<
%- if options[:html] -%>format.html # show.html.erb<%- end -%>
format
.
json
{
render
json:
<
%= "@#{singular_table_name}" %> }
end
end
<%- if options[:html] -%>
# GET <%=
route_url
%>/new
# GET <%= route_url %>
/new.json
def new
...
...
@@ -40,6 +41,7 @@ def new
# GET <%= route_url %>/
1
/
edit
def
edit
end
<
%- end -%>
# POST <%= route_url %>
# POST <%= route_url %>.json
...
...
@@ -48,10 +50,12 @@ def create
respond_to do |format|
if @<%=
orm_instance
.
save
%>
<%- if options[:html] -%>
format
.
html
{
redirect_to
@
<
%= singular_table_name %>, notice: <%=
"'
#{
human_name
}
was successfully created.'"
%>
}
<
%- end -%>
format.json { render json: <%= "@#{singular_table_name}" %>
,
status: :created
,
location:
<
%= "@#{singular_table_name}" %> }
else
format.html { render action: "new" }
<%- if options[:html] -%>format.html { render action: "new" }<%- end -%>
format.json { render json: <%=
"@
#{
orm_instance
.
errors
}
"
%>
,
status: :unprocessable_entity
}
end
end
...
...
@@ -62,10 +66,12 @@ def create
def
update
respond_to
do
|
format
|
if
@
<
%= orm_instance.update_attributes("#{singular_table_name}_params") %>
<%- if options[:html] -%>
format.html { redirect_to @<%=
singular_table_name
%>, notice: <%= "'#{human_name} was successfully updated.'" %>
}
<
%- end -%>
format.json { head :no_content }
else
format
.
html
{
render
action:
"edit"
}
<%- if options[:html] -%>
format
.
html
{
render
action:
"edit"
}
<
%- end -%>
format.json { render json: <%= "@#{orm_instance.errors}" %>
,
status: :unprocessable_entity
}
end
end
...
...
@@ -77,7 +83,7 @@ def destroy
@
<
%= orm_instance.destroy %>
respond_to do |format|
format.html { redirect_to <%= index_helper %>_url }
<%- if options[:html] -%>format.html { redirect_to <%=
index_helper
%>_url }<%- end -%>
format
.
json
{
head
:no_content
}
end
end
...
...
@@ -88,8 +94,11 @@ def set_<%= singular_table_name %>
@<%=
singular_table_name
%> = <%= orm_class.find(class_name, "params[:id]") %>
end
# Use this method to whitelist the permissible parameters. Example: params.require(:person).permit(:name, :age)
# Also, you can specialize this method with per-user checking of permissible attributes.
# Use this method to whitelist the permissible parameters. Example:
# params.require(:person).permit(:name, :age)
#
# Also, you can specialize this method with per-user checking of permissible
# attributes.
def
<
%=
"
#{
singular_table_name
}
_params"
%>
<
%- if attributes_names.empty? -%>
params[<%= ":#{singular_table_name}" %>
]
...
...
railties/test/generators/scaffold_controller_generator_test.rb
浏览文件 @
cb025f85
...
...
@@ -127,6 +127,18 @@ def test_skip_layout_if_required
assert_no_file
"app/views/layouts/users.html.erb"
end
def
test_skip_html_if_required
run_generator
[
"User"
,
"name:string"
,
"age:integer"
,
"--no-html"
]
assert_no_file
"app/helpers/users_helper.rb"
assert_no_file
"app/views/users"
assert_file
"app/controllers/users_controller.rb"
do
|
content
|
assert_no_match
(
/format\.html/
,
content
)
assert_no_match
(
/def edit/
,
content
)
assert_no_match
(
/def new/
,
content
)
end
end
def
test_default_orm_is_used
run_generator
[
"User"
,
"--orm=unknown"
]
...
...
railties/test/generators/scaffold_generator_test.rb
浏览文件 @
cb025f85
...
...
@@ -257,6 +257,11 @@ def test_scaffold_generator_no_stylesheets
assert_no_file
"app/assets/stylesheets/posts.css"
end
def
test_scaffold_generator_no_html
run_generator
[
"posts"
,
"--no-html"
]
assert_no_file
"app/assets/stylesheets/scaffold.css"
end
def
test_scaffold_generator_no_javascripts
run_generator
[
"posts"
,
"--no-javascripts"
]
assert_file
"app/assets/stylesheets/scaffold.css"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录