Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.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帮助简单表单:Hash:Class的未定义方法“model\u name”_Ruby On Rails_Ruby_Ruby On Rails 3_Simple Form - Fatal编程技术网

Ruby on rails Rails帮助简单表单:Hash:Class的未定义方法“model\u name”

Ruby on rails Rails帮助简单表单:Hash:Class的未定义方法“model\u name”,ruby-on-rails,ruby,ruby-on-rails-3,simple-form,Ruby On Rails,Ruby,Ruby On Rails 3,Simple Form,我试图用gem简单的表单创建一个表单 表格应包含所有Konkurancer的选择列表。动作URL应该是控制器public和动作pricecompare,并与Konkurancer的ID进行比较。我的路线:pricecombare/:id My route.rb: match "/finder/:id" => 'public#pricecompare' 到目前为止,我的简单表格如下: <%= simple_form_for({:controller => "public", :

我试图用gem简单的表单创建一个表单

表格应包含所有Konkurancer的选择列表。动作URL应该是控制器public和动作pricecompare,并与Konkurancer的ID进行比较。我的路线:pricecombare/:id

My route.rb:

match "/finder/:id" => 'public#pricecompare'
到目前为止,我的简单表格如下:

<%= simple_form_for({:controller => "public", :action => "pricecompare"}, :method => "get") do |f| %>
<%= f.association :konkurrancer, :collection => Konkurrancer.all(:order => 'name'), :prompt => "Pick company" %>
<%= f.button :submit, :style => 'display: none;' %>
我想要的Html输出:

<form method="post" id="new_konkurrancer" enctype="multipart/form-data" class="simple_form konkurrancer" action="/public/pricecompare" accept-charset="UTF-8">
<select style=" margin-left:10px;width:370px;float: left;
    margin-top: 10px;"name="konkurrancer[form]" id="konkurrancer_form" class="select optional"><option value="">Vælg din A-kasse:</option>
<option value="1">ASE</option>
<option value="2">Træ-industri-byg</option>
<option value="3">Journalistik, kommunikation og sprog</option>
<option value="4">Faglis fælles A-kasse (3F)</option>
<option value="5">Danske lønmodtagere</option>
</select>
<input type="submit" value="Opret konkurrence" name="commit" id="konkurrancer_submit" class="button" style="display: none;">

好的,因为你想要一个带有菜单的跳转导航,你可以实现它,就像这样,只是给你一个想法。默认情况下,它使用javascript和jquery,但如果javascript不可用,它会有一个回退

在你看来:

<%= form_tag "/finder/", :method => "get" %>
<%= label_tag :jump_nav, "Company" %>
<%= select_tag(:id, options_for_select(Konkurrancer.all(:order => 'name').collect { |k| [k.name, k.id] }), :id => "jump_nav") %>
<%= submit_tag "Jump to company", :id => "jump_nav_submit" %>
确保jquery和应用程序包含在javascript_include_标记中

最后在你的控制器里。使用prepare语句将有助于防止SQL注入

def pricecompare
  @akasse = Konkurrancer.first(:conditions => ["id = ?", params[:id]])
end

我不知道Konkurancer是什么意思,所以相应地调整标签。

好的,既然你想要一个带有菜单的跳转导航,你可以实现类似这样的功能,只是给你一个想法。默认情况下,它使用javascript和jquery,但如果javascript不可用,它会有一个回退

在你看来:

<%= form_tag "/finder/", :method => "get" %>
<%= label_tag :jump_nav, "Company" %>
<%= select_tag(:id, options_for_select(Konkurrancer.all(:order => 'name').collect { |k| [k.name, k.id] }), :id => "jump_nav") %>
<%= submit_tag "Jump to company", :id => "jump_nav_submit" %>
确保jquery和应用程序包含在javascript_include_标记中

最后在你的控制器里。使用prepare语句将有助于防止SQL注入

def pricecompare
  @akasse = Konkurrancer.first(:conditions => ["id = ?", params[:id]])
end

我不知道Konkurancer是什么意思,所以请相应地调整标签。

可能需要提及一个问题或错误。我已用错误更新了我的问题,您可能需要将对象传递到simple_form_以进行修改。它在第一个参数中查找模型,但传递了哈希。请看这里的来源:它应该是即时变量吗?如果是,我该如何将表单指向正确的路径?我的错误是:url=>{:controller=>finder}应该是:url=>/finder。我可能想提及一个问题或错误。我已经用错误更新了我的问题,您可能需要将一个对象传递到simple\u form\u以获取。它在第一个参数中查找模型,但传递了哈希。请看这里的来源:它应该是即时变量吗?如果是,我如何将表单指向正确的路径?我的错误是:url=>{:controller=>finder}应该是:url=>/finder。我已经用我以前的jquery ajax请求更新了我的帖子。你能说明我必须用当前的Jquery代码提出ajax要求吗?我认为这超出了这个问题的范围,这个问题已经偏离了标题所示的最初问题。我知道我将为此创建一个新问题,我已经用我以前的Jquery ajax要求更新了我的帖子。你能说明我必须用当前的Jquery代码提出ajax要求吗?我认为这超出了这个问题的范围,这个问题已经偏离了标题所示的初始问题。我知道我将为此创建一个新问题
NoMethodError in Public#index

Showing C:/Rails/akasse/app/views/layouts/application.html.erb where line #95 raised:

undefined method `to_key' for #<Class:0x85246c8>

Extracted source (around line #95):

92:                                 <%= render("shared/forside") %>
93:                         </div>
94: <div style="width:900px;float:left;margin-left:29px;margin-top:15px;"><p style="width:500px; float:left;font-weight:bolder;font-size:12px;margin-left:20px;font-family:verdana;">Find den billigeste a-kasse - Vælg din  a-kasse og se om du kan spare penge</p>
95: <%= simple_form_for(@konkurrancer, :url => '/finder', :method => "post") do |f| %>
96:   <%= f.association :konkurrancer, :collection => Konkurrancer.all(:order => 'name'), :prompt => "Pick company" %>
97:   <%= f.button :submit, :style => 'display: none;' %>
98: <% end %>
$(document).ready(function() {
    // send form ved klik paa listen
    $('option').click(function ()
    {
        var form=$(this).closest('form');
        $.ajax({
          type:'post',
          url:form.attr('action'),
          data:form.serialize(),
          success:function(msg){
            $('#formcontent').html(msg);
          }
        });
    });
});
<%= form_tag "/finder/", :method => "get" %>
<%= label_tag :jump_nav, "Company" %>
<%= select_tag(:id, options_for_select(Konkurrancer.all(:order => 'name').collect { |k| [k.name, k.id] }), :id => "jump_nav") %>
<%= submit_tag "Jump to company", :id => "jump_nav_submit" %>
$().ready(function() {
    $('#jump_nav_submit').hide();
});

$('#jump_nav').live('change', function() {
    window.location = "\/finder\/" + $(this).val();
});
def pricecompare
  @akasse = Konkurrancer.first(:conditions => ["id = ?", params[:id]])
end