Ruby on rails 如何在表单中选择记录并显示基于该记录的计算?
我需要知道如何制作一个表单,在其中可以选择一条记录,根据该记录进行一些计算并显示结果(最好在同一页上) 为了让它尽可能简单,让我们假设我想从用户模型中选择一个记录,并显示他的大写电子邮件 因此,结构将是: 大写的\u controller.rbRuby on rails 如何在表单中选择记录并显示基于该记录的计算?,ruby-on-rails,ruby,forms,ruby-on-rails-4,post,Ruby On Rails,Ruby,Forms,Ruby On Rails 4,Post,我需要知道如何制作一个表单,在其中可以选择一条记录,根据该记录进行一些计算并显示结果(最好在同一页上) 为了让它尽可能简单,让我们假设我想从用户模型中选择一个记录,并显示他的大写电子邮件 因此,结构将是: 大写的\u controller.rb class CapitalizedController < ApplicationController before_action :authenticate_user! def users @users = User.all
class CapitalizedController < ApplicationController
before_action :authenticate_user!
def users
@users = User.all
end
end
class CapitalizedController < ApplicationController
before_action :authenticate_user!
def users
@users = User.all
if params[:user]
@result = User.all.find(params[:user])
@result = @result.email.capitalize!
else
@result = nil
end
end
end
class CapitalizedController
大写/users.html.erb:
<%= form_tag('/capitalized/users') do %>
<div class="controls">
<%= select_tag :email, options_from_collection_for_select(@users, "id", "email"), :class => 'text_field' %>
</div>
<div class="form-actions">
<%= submit_tag nil, :class => 'btn btn-primary' %>
</div>
<% end %>
<%= form_tag('/capitalized/users', :method => "post", id: "capitalize-form") do %>
<div class="controls">
<%= select_tag :user, options_from_collection_for_select(User.all, "id", "email", params[:user]), :class => 'text_field' %>
</div>
<div class="form-actions">
<%= submit_tag 'Capitalize email', :class => 'btn btn-primary' %>
</div>
<% end %>
<% if @result %>
<p><%= @result %></p>
<% end %>
'文本\字段'%>
“btn btn主节点”%>
它的显示方式如下:
因此,在此之前,它会向我显示按字母顺序排序的用户电子邮件列表,我可以点击发送按钮(“Enviar”),它工作正常(到目前为止我没有错误),但它只会再次加载页面,我应该如何显示大写的电子邮件?在控制器中更改以下内容:
def users
@users = User.all
@var_to_show_user = User.search(params[:search_user])
end
在yor模型中,执行以下操作:
def self.search(search_mail)
if search
where('mail = ?', search_mail )
else
scoped
end
end
在你看来:
<%= form_tag('/capitalized/users') do %>
<div class="controls"><%= select_tag :email, options_from_collection_for_select(@users, "id", "email"), :class => 'text_field' %></div>
<div class="form-actions"><%= submit_tag nil, :class => 'btn btn-primary' %></div>
<% end %>
<% @var_to_show_user.each do |result| %>
<%= result.mail.to_s.first.upcase %>
<% end %>
希望这能奏效……祝你好运。好吧,最后我唯一要做的就是: 大写的\u controller.rb
class CapitalizedController < ApplicationController
before_action :authenticate_user!
def users
@users = User.all
end
end
class CapitalizedController < ApplicationController
before_action :authenticate_user!
def users
@users = User.all
if params[:user]
@result = User.all.find(params[:user])
@result = @result.email.capitalize!
else
@result = nil
end
end
end
class CapitalizedController
大写/users.html.erb:
<%= form_tag('/capitalized/users') do %>
<div class="controls">
<%= select_tag :email, options_from_collection_for_select(@users, "id", "email"), :class => 'text_field' %>
</div>
<div class="form-actions">
<%= submit_tag nil, :class => 'btn btn-primary' %>
</div>
<% end %>
<%= form_tag('/capitalized/users', :method => "post", id: "capitalize-form") do %>
<div class="controls">
<%= select_tag :user, options_from_collection_for_select(User.all, "id", "email", params[:user]), :class => 'text_field' %>
</div>
<div class="form-actions">
<%= submit_tag 'Capitalize email', :class => 'btn btn-primary' %>
</div>
<% end %>
<% if @result %>
<p><%= @result %></p>
<% end %>
“post”,id:“大写形式”)do%>
'文本\字段'%>
“btn btn主节点”%>
它的显示方式如下:
您有两种选择,要么使用AJAX,要么在用户模型中已经具备进行这些计算所需的一切,然后隐藏该信息,并使用javascript显示/隐藏该信息。你要什么都行。Rails有一些表单助手来构建ajax表单。祝你好运