【问题标题】:Rails 3: Using a link_to :action on an "index", isn't workingRails 3:在“索引”上使用 link_to :action 不起作用
【发布时间】:2011-08-31 23:39:26
【问题描述】:

编辑:错误是即使在按下 link_to 之后 feed_preference 始终为 nil,所以 (if feed_preference == nil) 始终为 true。我还是不知道是什么原因造成的。

这个link_to应该做什么:

当您点击链接时,它会以某种方式对帖子索引进行排序。一个按钮按趋势值排序,另一个按时间排序。


出于某种原因,在函数“make_feed_preference”中,@user.feed_preference 永远不会改变,即使我将其硬编码为 @user.feed_preference = “foobar”

但看起来 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 什么都不做。

【问题讨论】:

  • 你也可以试试 :make_feed_preference, :id => current_user.id, :preference => "trending value"} %>
  • 说真的,@Jon,你今天创建了多少份这个问题?

标签: ruby-on-rails ruby ruby-on-rails-3


【解决方案1】:

你说它什么都不做?表格甚至不张贴?

如果它根本没有发布......你有你的链接到表格吗?如果您使用的是 post 方法,则必须将其放在一个表单中,除非您使用诸如 ujs jQuery 库之类的东西,它使用 jQuery / Javascript 来帮助您进行“发布”操作。

使用 gem:gem 'jquery-rails' https://github.com/indirect/jquery-rails

我也想看看你的“rake 路线”

【讨论】:

  • err,好吧,但它真的很长:pastebin.com/5XQvmw91 我是一个 Rails 菜鸟,所以我只是有一个问题 - 我可以从 rake 路线中获得什么信息,而不是仅仅路线.rb?
  • 另外,我的 link_to 处于正常视图中 - 但是,我不确定 post 方法是否存在问题,因为我拥有的另一个函数(“vote_up”)使用 :method=> 工作:发布
  • 顺便说一句,看起来编辑 @user 的任何内容都没有保存。我认为这是问题所在。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-13
  • 1970-01-01
  • 2012-06-09
  • 2016-02-22
相关资源
最近更新 更多