我已经使用此视频http://railscasts.com/episodes/102-auto-complete-association-revised在我的应用程序的表单中设置自动填充搜索输入.(视频可能只适用于会员,所以我也会发布我的代码.基本上它会搜索数据库(名称)的一列,并在键入时自动填充下拉列表.这一切都正常,但是,我想要的是要执行的表单是提交与名称相关的ID,而不是名称本身.
我假设在视图中没有简单的方法可以做到这一点.任何帮助都会很棒.下面的代码,让我知道是否有任何其他代码会有所帮助.
谢谢
控制器:
def game_name
game.try(:name)
end
def game_name=(name)
self.game = Game.find_by_name(name) if name.present?
end
Run Code Online (Sandbox Code Playgroud)
咖啡:
jQuery ->
$('#play_game_name').autocomplete
source: $('#play_game_name').data('autocomplete-source')
Run Code Online (Sandbox Code Playgroud)
在视图中:
<%= f.label :game_name, "Search for a game" %>
<%= f.text_field :game_name, :class => "mlm mtm", data: {autocomplete_source: Game.order(:name).map(&:name)} %>
Run Code Online (Sandbox Code Playgroud) 好吧,我觉得我错过了一些非常简单的东西但是这里有:
这段代码非常好用,就像我想要的那样.单击该链接并显示下一个div(页面上大约有10个)
$('a.addtask').click(function(){
$(this).next('.field').slideToggle();
return false;
});
<div class="field">
Some content
</div>
<a href="#" class="addtask">Add a task</a>
<div class="field" style="display:none;">
some other content
</div>
Run Code Online (Sandbox Code Playgroud)
但是我想要做的就是更改HTML(div中的链接):
<div class="field">
Some content
<a href="#" class="addtask">Add a task</a>
</div>
<div class="field" style="display:none;">
some other content
</div>
Run Code Online (Sandbox Code Playgroud)
^^哪个不再正常工作.
我需要在jquery中进行哪些更改才能使其工作?我一直在谷歌搜索一段时间,类似的帖子中的一些解决方案似乎没有工作.
我在控制器中有这样的代码:
def index
@plays = current_user.plays.includes(:game).order("created_at desc")
@wants = current_user.wants.includes(:game).order("created_at desc")
@ratings = current_user.ratings.includes(:game).order("created_at desc")
@activities = (@plays + @wants + @ratings).sort_by {|a| a.created_at}.reverse
end
Run Code Online (Sandbox Code Playgroud)
我想做的是使用kaminari对此进行分页.为了清楚起见,我希望将所有这些"活动"视为反向created_at顺序中的一个"feed"和paginate.我不想一次分页5种每种类型或类似的东西.
任何帮助你都很棒!