如何解决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 举报,一经查实,本站将立刻删除。