html - Passing an instance attribute and association method as parameters in a ruby method -


i've written rails helper part of creating data-attributes options within select box.

helper

def list_attributed_options(instance_vars, attr, assoc_method)   instance_vars.map { |instance_var| [instance_var.attr, instance_var.id, { :"data-#{assoc_method}" => instance_var.assoc_method.downcase.gsub(/\s+/, "-")}] } end 

view code

<%= f.input :game_id, as: :select, collection: list_attributed_options(@games, "title", "console"), include_blank: "select game" %> 

instance_vars represents instance variables used collection (@games), attr represents 1 of instance variables' attributes , assoc_method model belongs to.

instance_var.title = "halo" instance_var.id = 21 instance_var.console = "xbox one" 

so example in particular case want name options game's title, name data attribute after console belonging game:

<select>   <option data-console="xbox-one">halo</option>   <option data-console="ps4">ratchet-&-clank</option>   <option data-console="xbox-one">tomb raider</option> </select> 

interpolating attr parameter works fine when comes attaching them instance variable when run problems.

if understood want, "title" should "name" instead, yes? in case, instance_var.attr can't work since instance_var doesn't have attr; has name. want instance_var.send(attr.to_sym).


Comments

Popular posts from this blog

OpenCV OpenCL: Convert Mat to Bitmap in JNI Layer for Android -

android - org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope -

python - How to remove the Xframe Options header in django? -