【发布时间】:2016-03-22 10:28:02
【问题描述】:
我想动态创建一些动作,如下所示。
但由于代码不在方法中,我收到以下错误:“未定义的局部变量或方法”
这有可能吗?如果可以,怎么做?
class Post < ActiveRecord::Base
CATEGORIES = [:music,:movies,:art,:jokes,:friends,:whatever].freeze
end
class PostsController < ApplicationController
Post::CATEGORIES.each do |category|
eval <<-INDEX_LIKE_ACTIONS
def #{category}
@posts = Post.where( category: '#{category}' )
render :index
end
INDEX_LIKE_ACTIONS
end
end
resources :posts do
collection do
Post::CATEGORIES.each {|category| get category.to_s}
end
end
【问题讨论】:
-
如果您所做的只是呈现索引视图,我会质疑您是否需要为每个类别使用单独的方法。如果它比这更复杂,那么可能需要它。
标签: ruby-on-rails actioncontroller ruby-on-rails-5