Ruby on rails Rails帮助简单表单:Hash:Class的未定义方法“model\u name”
我试图用gem简单的表单创建一个表单 表格应包含所有Konkurancer的选择列表。动作URL应该是控制器public和动作pricecompare,并与Konkurancer的ID进行比较。我的路线:pricecombare/:id My route.rb: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", :
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