javascript - 如何根据两个不同的输入动态设置链接的路径?

标签 javascript jquery html ruby-on-rails variables

我有一个型号Movie我有一个用于比较两部电影的页面。我使用参数 AB设置两部电影:

<%
  @movie1 = Movie.find_by(title: params[:A])
  @movie2 = Movie.find_by(title: params[:B])
%>

页面左侧显示“A”影片,右侧显示“B”影片。

有一个选项可以删除当前的两部电影并输入新电影。现在我拥有的系统是这样的:页面的“A”和“B”面都有一个下拉菜单,其中包含可点击的建议,当用户键入时会出现,然后单击 A 面上的建议链接到同一页面,除了 params[:A]替换,反之亦然。

例如,单击 A 面下的“哈利·波特”将使用此链接:<%= link_to "Harry Potter", compare_path(A: "Harry Potter", B: params[:B]) %>

但是这样,用户在选择每部电影后必须等待页面加载。我希望用户能够输入这两部电影,然后按下按钮以使用新参数重新加载页面。

所以我需要某种“运行比较”链接按钮,单击建议将必须重置该链接的路径,可能使用 jQuery。诀窍是,“A”建议必须考虑最新的“B”建议,反之亦然。

例如,如果两个选项都是空的,并且我在 A 侧选择“哈利·波特”,则链接的路径将为 compare_path(a: "Harry Potter", b: "") ,但是如果我在B侧选择“The Ring”,那么新路径应该是compare_path(a: "Harry Potter", b: "The Ring") 。然后如果我改变主意并在A侧选择“着迷”,那么路径将重新更新为compare_path(a: "Bewitched", b: "The Ring")

我彻底迷路了。有人知道如何实现这一目标吗?

最佳答案

使用以下路由参数化 movie_amovie_b (假设您有一个 MoviesController):

get "compare/:movie_a/:movie_b" => "movies#compare", as: :compare

请注意,params[:movie_a]params[:movie_b] 将映射到相应的 :movie_a: movie_b 网址的 slug。

关于javascript - 如何根据两个不同的输入动态设置链接的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36952107/

相关文章:

javascript - React-Native native-base 如何减小卡片项之间的间距?

jquery - 在同一位置淡入/淡出元素

php - 一个用于所有 jquery post 请求的 php 文件?

javascript - 如何设计 drupal twitter block 的样式?

html - 在 meteor 中设计聊天室的问题

css - 输入文本时如何摆脱div元素底部的空白

javascript - 关于范围、node.js 和express 的问题

javascript - 如何在 Ionic Lab 启动项目 “Sidemenu” 中设置主从 View ?

javascript - 如何在javascript中传递未命名的字符串数组?

JavaScript/CSS : Change button to a text field on click?