[英]Rails 3: Using a link_to :action on an “index”, isn't working
编辑:错误是即使按下link_to后feed_preference始终为nil,因此(如果feed_preference == nil)始终为true。 我仍然不知道是什么原因造成的。
此link_to应该做什么:
当您按下链接时,它将以某种方式对帖子索引进行排序。 一个按钮按趋势值排序,另一个按钮按时间排序,依此类推。
由于某种原因,在函数“ make_feed_preference”中,即使我将其硬编码为@ user.feed_preference =“ foobar”,@ user.feed_preference也不会更改。
但看起来redirect_to'posts'工作正常。
<%= link_to displayIcon(1), {:action => :make_feed_preference, :id => current_user.id,
:preference => "trending value", :controller => "users"}, :method=>:post %>
在用户控制器中:
def make_feed_preference
@user = User.find(params[:id])
@user.feed_preference = params[:preference]
@user.save
redirect_to '/posts'
end
在帖子索引视图中:
def index
@user = current_user
if @user.feed_preference == nil
@user.feed_preference = "trending value"
end
@posts = Post
unless @user.tag_list == []
@posts = Post.tagged_with(@user.tag_list, :match_all => :true)
end
if @user.feed_preference == "trending value"
@posts = @posts.order('trending_value DESC').page(params[:page]).per(5)
elsif @user.feed_preference == "time"
@posts = @posts.order('created_at DESC').page(params[:page]).per(5)
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @posts }
end
end
Routes.rb
resources :users do
resources :comments
resources :posts
member do
get :following, :followers
end
collection do
post "tag_with"
post "clear_tag_list_and_preferences"
post "make_feed_preference"
end
end
每当我检查这些值时,就好像单击link_to不会执行任何操作。
你说什么都不做? 该表格甚至不发布?
如果根本没有发布...您是否以表格的形式有link_to? 如果您使用post方法,则必须以某种形式使用它,除非您使用ujs jQuery库之类的东西,这些库使用jQuery / Javascript来帮助您进行“ post”操作。
使用gem:gem'jquery-rails'https: //github.com/indirect/jquery-rails
我也想看看你的“耙路”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.