我有一个视图(让我们称之为View#1),允许用户使用表单上的下拉菜单选择要查看的特定表。然后该参数传递给我的控制器。我想要做的是让我的控制器获取该参数并使用它来改变它所指向的视图上元素的可见性(视图#2)。
视图#2有3个表。一旦我的Controller中的方法运行,在任何给定时间只能看到一个表。目前,所有3个表都具有唯一ID,并且它们在CSS文件中具有display:none属性。因此,如果用户选择" 1"从View#1开始,我希望View#2将表1的显示设置为block,将表2和3设置为display:none。我可以在Controller中执行此操作,还是需要在JavaScript中执行此操作?如果我必须在JavaScript中执行此操作,如何将参数值从控制器传递给JS函数调用?
答案 0 :(得分:0)
你应该把每个表分成它自己的部分,只渲染你想要显示的那个:
def some_action
@table_to_show = "table_1"
# table_1 should be determined by the user's selection from View #1
# probably something like: @table_to_show = params[:user_selection]
end
并在您的视图中#2:
<%= render @table_to_show %>
将依次呈现模板:_table_1.html.erb
您可以使用CSS / js,但可能不应该用于在控制器级别处理的内容。