我想问一下我是否应该在我的控制器中保留空方法(这是一个关于代码风格的问题):
before_action :set_project, only: [:show,:new]
def show
end
def new
end
我应该像这样保留它还是简单地删除节目和新动作
class ProjectController < ApplicationController
before_action :set_project
def index
#indexaction
end
def create
#createaction
end
是否更加偏执? Rails Styleguide并不表示任何溶剂,仅表示:
def show
end
优于
def show; end
答案 0 :(得分:5)
如果您未在这些方法中定义任何数据,则可以将其删除。
Rails会自动从路线中的动作名称推断出视图。
如果您没有定义数据(仅在控制器中完成),您可以依赖view
正在加载的而不会存在的操作:
您已经听说过Rails推广&#34;约定优于配置&#34;。默认渲染就是一个很好的例子。默认情况下, Rails中的控制器会自动呈现名称与有效路径对应的视图。例如,如果您的
BooksController
类中包含此代码:class BooksController < ApplicationController end
以下路线文件:
resources :books
您有一个查看文件
app/views/books/index.html.erb
:<h1>Books are coming soon!</h1>
当您导航到/ books时,Rails会自动呈现
app/views/books/index.html.erb
,您会看到&#34;图书即将推出!&#34;在你的屏幕上。
答案 1 :(得分:3)
如果您希望将来使用这些方法,请保留这些方法,否则将其删除。即使保留它们也不会有任何问题。
如果创建了这些方法并且您不想使用它们,也会删除这些方法的路由。代码应该尽可能简单。
答案 2 :(得分:1)
如果真的关于风格首先保留你的评论,那么如果你运行rdoc
或生成文档,他们会在def show
之前发表任何评论并使用它来构建在描述这种方法&#34;&#34;。
class ProjectController < ApplicationController
before_action :set_project
#indexaction is awesome and will be used to do stuff like look at all the projects
def index
end
# will hopefully create your project
def create
end
如果没有使用路线,请不要让它们四处闲逛。默认情况下,您会收到blah.com/projects/1.json
这样的内容,如果您还没有将其锁定(或者即使您有用户在应用内),他们也可以轻松获取json结果,假设您将所有内容保留在那里后来。如果你有一个before_filter
来做什么&#39;那就更别说了。加载项目。
将其提交到git中然后将其删除并再次提交。如果你需要恢复它,至少github / bitbucket历史或git历史,如果你是虐待狂,将有它复制和粘贴。