小编Max*_*Max的帖子

设计如何将当前用户关联到帖子?

如何将我登录的当前用户与我在创建时的帖子相关联?

我的帖子模型:

before_create :owner
belongs_to :user
def owner
    self.user_id = current_user.id
end
Run Code Online (Sandbox Code Playgroud)

但是,因为我不能在模型中使用方法current_user,所以这种方法有效.

这是我的控制器:

class PostsController < ApplicationController
before_filter :authenticate_user!

  # GET /posts
  # GET /posts.xml
  def index
    @posts = Post.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @posts }
    end
  end

  # GET /posts/1
  # GET /posts/1.xml
  def show
    @post = Post.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @post }
    end
  end

  # GET /posts/new
  # GET /posts/new.xml
  def new …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails devise ruby-on-rails-3

14
推荐指数
2
解决办法
2万
查看次数

设计如何在创建用户表单中添加一个addtional字段?

我正在尝试在创建时向我的用户添加用户名.

在设计/注册/新我有:

<h2>Sign up</h2>

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
  <%= devise_error_messages! %>
  <p><%= f.label :username %><br />
  <%= f.text_field :username %></p>

  <p><%= f.label :email %><br />
  <%= f.email_field :email %></p>

  <p><%= f.label :password %><br />
  <%= f.password_field :password %></p>

  <p><%= f.label :password_confirmation %><br />
  <%= f.password_field :password_confirmation %></p>

  <p><%= f.submit "Sign up" %></p>
<% end %>

<%= render :partial => "devise/shared/links" %>
Run Code Online (Sandbox Code Playgroud)

问题是没有params[:username]发送到控制器,我在视图中收到以下错误:

ActiveRecord::StatementInvalid in Devise::RegistrationsController#create

Mysql::Error: Column 'username' cannot be null: …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails devise ruby-on-rails-3

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

devise ×2

ruby-on-rails ×2

ruby-on-rails-3 ×2

ruby ×1