在我的ruby on rails应用程序中,我想将控件值输入控制器页面:
below is view page:
<%= form_for :managerviewresume, :url => { :method => :post, :action => :managerviewresume }) do |f| %>
<table class="table" width="100%">
<tr>
<td><%= @selection %></td> //Here I am checking radio button value
<td>
<label style="font-size:small;">Selected?</label>
<label class="radio inline" style="font-size: small">
</br>
<%= f.radio_button :select, "Yes", :id => "rb_select1" %>
Yes
</label>
<label class="radio inline" style="font-size: small">
<%= f.radio_button :select, "No", :id => "rb_select2" %>
No
</label>
</td>
</tr>
<tr>
<td>
<%= f.submit "Save", { :class => "stylbutton" } %>
</td>
</tr>
</table>
<% end %>
下面是控制器页面:
class ManagersController < ApplicationController
def managerviewresume
@selection = params[:select]
render "managerviewresumes"
end
end
在控制器的页面中,我在此行render 'managerviewresumes'
处收到以下错误:
Missing template managers/managerviewresumes, application/managerviewresumes with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee]}. Searched in: * "C:/Sites/VideoResume/app/views"
以下是路线:
match '/managerviewresumes', to: 'managers#managerviewresume', via: 'get'
请建议我应该从radio button
页面获取view
值到controller
页面。
等待回复。
感谢。
答案 0 :(得分:1)
<强>渲染强>
首先,您不需要使用render
呈现与action
名称相同的视图
使用Rails控制器时,您可以毫无问题地调用它:
#app/controllers/your_controller.rb
Class YourController < ApplicationController
def your_action
#-> will automatically render the "your_action" view
end
end
因此,我会删除您对render
操作的引用(因为这是一个不必要的步骤)。这不会直接解决问题,但应确保您的申请更加convention over configuration
-
<强>路线强>
其次,可能需要查看resourceful routing
在Rails&#39;在路由结构中,您可以调用resources :controller
来生成一系列RESTful
路由:
我知道您可能希望继续使用您的操作,但为了正确起见,我建议您查看config/routes.rb
文件&amp;确保您使用尽可能多的基于资源的路线:
#config/routes.rb
resources :managers do
collection do
post :managerviewresume
end
end
-
<强>表格强>
最后,我认为你的表格需要改进
您正在使用form_for
,主要用于ActiveRecord对象(如果您要创建新记录等等。似乎您更适合使用form_tag
代替:
<%= form_tag managers_managerviewresume_path do %>
<table class="table" width="100%">
<tr>
<td><%= @selection %></td> //Here I am checking radio button value
<td>
<label style="font-size:small;">Selected?</label>
<label class="radio inline" style="font-size: small">
</br>
<%= radio_button_tag :select, "Yes", :id => "rb_select1" %>
Yes
</label>
<label class="radio inline" style="font-size: small">
<%= radio_button_tag :select, "No", :id => "rb_select2" %>
No
</label>
</td>
</tr>
<tr>
<td>
<%= submit_tag "Save", { :class => "stylbutton" } %>
</td>
</tr>
</table>
<% end %>
此语法可能需要检查,但这将根据需要发送:select
参数,这不是您当前表单将要执行的操作。
这应该与用于加载的Rails的views/managers/managerviewresume.html.erb
文件相结合