微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Rails:有关如何允许用户个性化其样式表的教程

如何解决Rails:有关如何允许用户个性化其样式表的教程

|| 我是Rails的新手(通常是Web开发)。我一直在寻找有关Rails的教程,这些教程可以帮助我完成一个项目。我已经找到了几乎所有问题的解决方案,但仍然存在。 顾名思义,我想让我的网站用户能够针对其个人空间个性化其CSS样式表。 Twitter喜欢。 谁能帮我 ?那太麻烦了。 谢谢 ! 编辑: 好的,这是到目前为止的代码(我正在使用Devise)
#stylesheets_controller.rb
class StylesheetsController < ApplicationController

  def user_css
  if user_signed_in?
    @user = current_user
  end

  respond_to do |format|
    format.css
  end
end

end
我的“动态” CSS:
#user_css.css.erb
<%=
  if @user # User log in ?
    background_color = @user.color_index
  else
    background_color = \"666\"
  end
%>

.cadre {
   background-color : #<%= background_color %>;
   height: 50 px;
   width: 50 px;
}
您能告诉我我做错了什么吗,因为我遇到了这个错误并且无法加载我的CSS:   在2011-04-18 15:09:07 +0200为127.0.0.1开始GET \“ / stylesheets / user_css.css \”      由StylesheetsController#user_css处理为HTML      ←[1m←[36m用户负载(2.0ms)←[0m←[1mSELECT \“ users \”。* FROM \“ users \” WHERE(\“ users \”。\“ id \” = 5)LIMIT 1←[ 0米      127毫秒内完成406不可接受 如果您需要我任何文件中的代码,请告诉我。     

解决方法

也许您可以尝试创建样式表控制器:
class StylesheetsController < ...
  def per_user # or whatever name you like
    @user = User.find(params[:id])

    respond_to do |format|
      format.css # I didn\'t try it,but I guess this should work,please tell me if not
    end
  end
end
这是您的模板:/app/views/stylesheets/per_user.css.erb
/* put whatever you want here */
#user-<%= @user.id %> {
  color: #666;
}

<%= @user.user_defined_css %>
最后是路线:
get \'/stylesheets/per_user.css\' => \'stylesheets#per_user\',:as => :per_user_stylesheet

<%= stylesheet_link_tag per_user_styleseet_path %>
我想样式表的更改不会太频繁。因此,您最好缓存结果。 ===更新=== 我尝试了上面的代码,它也无法正常工作。 因此,这是我可以想到的另一种方法,即通过使用局部方法。 在您的布局文件中:
# views/layouts/application.html.erb
......
<head>
  <%= render :partial => \"stylesheets/user_css\",:locals => {:user => @user} %>
</head>
......
您的局部包含为用户定制的css。 这可能不是很漂亮,但是我认为这应该可行。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。