我想要实现的是在下拉菜单中有一个项目列表,这样当从该下拉菜单中选择一个时,只有与该项目相关的任务等才会显示在其他页面上。通过在该项目的显示视图中设置按钮,我让它工作正常,但如果用户可以这样选择它会快得多。
下面的代码显示了到目前为止我在索引视图中得到的内容(也感谢 cutalion!) - 似乎是问题的行是第三行 - 选择链接。它给出的错误是它找不到没有 id 的项目。页面显示时(当我删除该行时)下拉列表中列出了一个项目 - 那么为什么 id 没有通过?此外,当从代码中删除第三行以显示要显示的页面时,第二行生成的链接指向索引视图而不是显示视图。我猜这与 id 没有通过有关,但我不知道如何解决它!
任何人都可以对此有所了解的任何人都会很棒,谢谢!
项目/索引视图(更新代码以纠正不一致):
<%= collection_select(:project, :id, Project.all, :id, :name) %>
<%= link_to 'Show', @project, :id => "show_project_button" %>
<%= link_to "Select" select_project_project_path(@project), id: "select_project_button" %>
<script type="javascript">
$('#project_id option').change(function(){
var project_id = $(this).val();
$('#show_project_button').attr('href', '/projects/' + project_id);
$('#select_project_button').attr('href', '/projects/' + project_id + '/select_project');
})
</script>
此外,项目控制器中的 select_project 操作:
def select_project
project = Project.find(params[:id])
session[:project_id] = project.id
redirect_to root_url, notice: "Current project set to: #{project.name}, ID: #{project.id}"
end