Rails,AJAX:根据以前单击的链接呈现新的link_to
Rails, AJAX: Render new link_to depending on previously clicked link
所以我只是想做一些简单的事情,但我似乎在我的书中找到任何解决方案或轻松谷歌搜索它。
<div id="subscribe">
<% if session[:read_random]
unless is_subscribed?(session[:read_random].last)%>
<%= link_to 'Subscribe', subscriptions_path(feed_id: session[:read_random].last), method: :post, remote: :true %>
<% else %>
<%= link_to 'Unsubscribe', subscriptions_path(feed_id: session[:read_random].last), method: :delete, remote: :true %>
<% end
end %>
</div>
而我的create.js.erb是:
if is_subscribed?(session[:read].last)
$('#subscribe').html("Unsubscribe");
else
$('#subscribe').html("Subscribe");
end
所以我知道这段代码显然是错误的,请告诉我我在这里做错了什么,如果他不是,我想让用户选择订阅,反之亦然。
我需要把link_to放在jQuery语句的html部分吗? 唯一的问题是,我想尝试一下看看它是否有效,我什至没有从 ajax 调用中获得任何更新的文本。服务器说它已经呈现了订阅/创建.js.erb,数据库正在适当更新
听起来控制器有问题。也许我们可以看到控制器...如果您使用webkit工具的Firebug,您会收到任何错误吗?
你的javascript是错误的,因为它混合了ruby和javascript:
<% if is_subscribed?(session[:read].last) %>
$('#subscribe').html("Unsubscribe");
<% else %>
$('#subscribe').html("Subscribe");
<% end %>
您的is_subscribed方法最好放在模型中,并且最好查询模型属性而不是使用会话。然而,这只是一个建议。我猜is_subscribed?是否在帮助程序中定义?
对不起,我现在帮不上更多忙
解决方案:在views/subscriptions/create.js.erb和destroy.js.erb
$('#subscribe').html("<%=j link_to 'Unsubscribe', subscriptions_path(feed_id: session[:read_random].last), method: :delete, remote: :true %>");
改变销毁,你有它!
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 如何使用jQuery自动打开页面上的所有链接
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- jquery动画可以通过编程链接吗
- 在单击href链接的同时下载文件
- 尽管链接成功并已成功下载,但未找到NPM模块
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 单击页面上的链接后高度发生变化
- 将纯文本URL转换为可单击链接
- python-selenium-点击上升链接
- 一点javascript元编程&可链接的设置器
- ng视图外的链接重定向到ng视图内的页面
- 如何调用“;链接_;在onclick事件上使用Javascript
- 链接所有<a>Meteor
- 为什么 CSS :active on link 不会突出显示当前页面链接
- React Router Link中触发链接的Material-UI组件
- Angular 2:动态生成链接的Active Router link和routerLinkActiveOptions
- Href link在转到链接之前执行javascript
- 我怎样才能得到这个link元素?总是显示“无法找到带有链接文本的元素”==“搜索”