传递select_tag值以在相同的视图轨道中加载查询

时间:2016-01-06 01:55:24

标签: ruby-on-rails ruby ruby-on-rails-4

我知道这个问题之前已经得到了回答,但这些方法都没有对我有用。

我有一个带有select_tag的视图,可以从我的数据库加载选项。
<%= select_tag :nom, options_from_collection_for_select(Usuario.all, :id, :tienda), prompt: "Seleccionar tienda" %>

然后,我使用link_to <%= link_to("Cargar", :action => 'rel') %><br>在我的控制器上加载查询

def rel
@nom = params[:nom]
@tie = Av.find_by_sql(["SELECT * FROM avm.avs where usuario_id in(select id from avm.usuarios where tienda = ?)", @nom])
render('rel')

问题是,当我在select_tag上选择任何值时,它不会传递该值并将值设置为nil ...

我还使用了collection_select并且也没有工作。 <%= collection_select(:tienda, :tienda, Usuario.all, :id, :tienda)%>

我真的试图弄清楚原因。提前致谢!

2 个答案:

答案 0 :(得分:2)

使用public void onBackPressed() { if (!mFragments.getSupportFragmentManager().popBackStackImmediate()) { supportFinishAfterTransition(); } }

form_tag

提示:将<%= form_tag action: rel do %> <%= select_tag :nom, options_from_collection_for_select(Usuario.all, :id, :tienda), prompt: "Seleccionar tienda" %> <br> <%= link_to("Cargar", '#', onclick: 'this.parentNode.submit(); return false') %> <% end %> 替换为find_by_sql

Arel

答案 1 :(得分:1)

我认为您应该将select_tag放在form_tag块中,并使用submit_tag代替link_to。如果您只使用链接,则不会将参数传递给控制器​​(因此您将获得nil)。

类似的东西:

<%= form_tag action: 'rel' do %>
    <%= select_tag :nom, options_from_collection_for_select(Usuario.all, :id, :tienda), prompt: "Seleccionar tienda" %>
    <%= submit_tag 'Cargar' %>
<% end %>

请注意,这种方法并不安全,因为没有真实性令牌验证。