我在rails应用程序上有一个ajax select,在select上显示未定义,如下所示,
我添加了order
范围以进行修复,但如果我删除了order
列表,则不会显示,如果我放置created_at
或name asc
,则会显示undefined
有人知道为什么吗?
on控制器是:
def index
genders = Gender.where(block_id: params[:block_id]).select('id, gender').order('created_at asc')
render json: genders
end
视图中的是:
<%=dynamic_collection_select :product, :gender_id, :category, [], :id, :gender, { include_blank: false, submit_with_form: true, :prompt=> 'Select' }, { class: 'form-control select_item' } %>
性别对象
class Gender < ActiveRecord::Base
has_many :categories
belongs_to :block
accepts_nested_attributes_for :categories
attr_accessible :gender, :categories_attributes
end
答案 0 :(得分:1)
您正在拥有activerecord
集合对象,需要转换为JSON,
def index
genders = Gender.where(block_id: params[:block_id]).select('id, gender').order('created_at asc')
render json: genders.as_json
end
答案 1 :(得分:1)
确保您使用的是实例变量,以便在视图中显示:@genders,其次确保您在视图中调用该对象:例如: dynamic_collection_select @genders .....等
<强>要点:强>
修改强>
为什么你渲染为json?如果你使用的是jquery,不应该使用render到html.erb模板吗?