【问题标题】:Adding class to link_to causes error将类添加到 link_to 会导致错误
【发布时间】:2016-08-11 04:23:31
【问题描述】:

我在我的应用程序中使用 facebook 文本链接注册。 我试图在这个文本链接中添加类来把它变成一个按钮。

在 Rails 中,它是这样写的以显示该文本。

= link_to_session

所以,作为一项规则,我添加了以下内容

= link_to_session 'sign up', class: 'button button-primary'

但它给了我一个错误......

wrong number of arguments (2 for 0)

我该如何解决这个问题...? 感谢您的宝贵时间!

更新 对不起..我不太确定在哪里看...

我查看了会话控制器并在控制器中写了以下...

class SessionsController < ApplicationController

  def create
    auth = request.env["omniauth.auth"]
    user = User.find_by_auth(auth)
    if user.blank?
      if session[:user_id].present?
        # via token
        user = User.find(session[:user_id])
        user.definitive_by(auth)
      else
        # new user
        user = User.find_or_create_by_auth(auth)
      end
    else
      user.token = auth.credentials.token
      user.save!
    end
    session[:user_id] = user.id
    redirect_to root_url
  end

  def create_via_token
    session[:user_id] = params[:user_id]
    redirect_to '/auth/facebook'
  end

  def destroy
    session[:user_id] = nil
    redirect_to root_url
  end

end

【问题讨论】:

  • 你从哪里得到link_to_session的方法?你能把这个方法贴出来吗?
  • 您好 Hassanin Ahmed,我刚刚更新了详细信息!希望这会有所帮助...

标签: ruby-on-rails link-to slim-lang


【解决方案1】:

试试下面的

= link_to 'sign up', "write your path here", class: 'button button-primary'

这里的会话路径应该存在于您的路由中。

【讨论】:

  • 感谢您的快速回复!我试过了,我得到了这个......没有路线匹配 {:action=>"destroy", :controller=>"sessions"} 缺少必需的键:[:id]
  • 你想在这个链接上执行什么操作?
  • 这是使用 facebook 按钮注册。当用户单击此链接时,它会跳转到 facebook Oauth 页面,一旦 fb 用户接受它,它将登录到我的服务并将用户跳转到他们的 MYPAGE
  • 好的,所以复制那个 facebook 路径而不是 new_session_path,你使用任何 gem 吗?
  • 是的,我正在为此使用omniauth和omniauth-facebook。
猜你喜欢
  • 2018-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-12
  • 2020-04-04
相关资源
最近更新 更多