Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何将数据字段添加到Rails中选项的选项中?_Ruby On Rails_Rails Activerecord_Form Helpers - Fatal编程技术网

Ruby on rails 如何将数据字段添加到Rails中选项的选项中?

Ruby on rails 如何将数据字段添加到Rails中选项的选项中?,ruby-on-rails,rails-activerecord,form-helpers,Ruby On Rails,Rails Activerecord,Form Helpers,如何将数据字段添加到此选项中的选项?这是针对Rails 2的 我想补充一下 data-masterlocation-name="<%= location.masterlocation.inst_name %>" data-masterlocation-id="<%= location.masterlocation.id %>" 看法 看法 “startdrop”,:name=>“startthere”}%> 使用此方法无法执行此操作。但是,你可以这样写: <%

如何将数据字段添加到此选项中的选项?这是针对Rails 2的

我想补充一下

data-masterlocation-name="<%= location.masterlocation.inst_name %>" 

data-masterlocation-id="<%= location.masterlocation.id %>"
看法

看法

“startdrop”,:name=>“startthere”}%>

使用此方法无法执行此操作。但是,你可以这样写:

<%= f.select :start, location_options(@itinerary),{}, :id=>"startdrop", :name=>"startthere" %>     

谢谢你的评论!不幸的是,这引发了一个错误:
maptry\u helper.rb:3:形式参数不能是实例变量def location\u options(@internative)^。
另外,在您的回答中,我将要创建的值放在哪里:
“#{masterlocation.street\u address},#{masterlocation.city},#{masterlocation.state},#{masterlocation.zip}”
?我能够调整代码使其为我工作(基于上面的代码!)感谢您的帮助。我有几个相关的问题,所以非常感谢你提供的任何其他建议。事实上,这是不正确的。你可以。请看这里:
<%= f.select :start, options_for_select(@itinerary.locations),{}, :id=>"startdrop", :name=>"startthere" %>     
module MaptryHelper

  def options_for_select(locations)
    locations.map do |l|
    content_tag "option", l.masterlocation.name, location_option_attributes(l)
    end.join("\n")
  end

  private

  def location_option_attributes(location)
    {
    :value => "#{location.masterlocation.street_address}, #{location.masterlocation.city}, #{location.masterlocation.state}, #{location.masterlocation.zip}",
    :id => location.masterlocation.id,  
    :"data-masterlocation-name" => location.masterlocation.name,
    :"data-masterlocation-id" => location.masterlocation.id
    }
  end
end
<%= f.select :start, options_for_select(@itinerary.locations), {}, {:id=>"startdrop", :name=>"startthere"} %>      
<%= f.select :start, location_options(@itinerary),{}, :id=>"startdrop", :name=>"startthere" %>     
def location_options(itinerary)
  itinerary.locations.map do |l|
    content_tag "option", l.name, location_option_attributes(l)
  end.join("\n")
end

private

def location_option_attributes(location)
  {
    :id => location.id,  
    :"data-masterlocation-name" => location.masterlocation.inst_name,
    :"data-masterlocation-id" => location.masterlocation.id
  }
end